java.lang.String类代表字符串。
API中说:Java程序中的所有字符串字面值(如:“abc”)都作为此类的实例实现
翻译:程序中所有带双引号的字符串都是String类的对象,就算没有new也是的。

字符串的特点:

  1. 字符串的内容永不可变。(重点)
  2. 正是因为字符串的不可变,所以字符串是可以共享使用的。
  3. 字符串效果上相当于是char[]字符数组,但底层原理是byte[]数组

字符串创建的常见3+1种方法:
三种构造方法:

new String();   new String();//内容是空的
new String(char[] array);//根据字符数组的内容来创建字符串
new String(byte[] array);//根据字符数组的内容来创建字符串

直接创建:String aa="hello";

注意:没有new直接写上双引号也是字符串。

字符串常量池:程序中直接写上双引号的字符串,就在字符串常量池中。
补充:对于基本类型来说:==比较的是值
对于引用数据类型来说:==比较的是地址值

引用字符串的比较:equals(Object obj)判断是否相等、contains()判断是否包含、
equalsIgnoreCase()忽略大小写比较大小

1. Object任何对象都能接收
2. equals参数是一个字符串并且内容相等,才会返回true,否则返回false
3. equals方法具有对称性,就是a.equals(b)与b.equals(a)效果一样。
 4.如果比较双方一个常量一个变量推荐把常量字符串写在前面

常用方法:

1. length();获取字符串中含有的字符个数,拿到字符串长度
2. concat(str);将当前字符串和参数字符串拼接成为返回值新的字符串
3. charAt(index);获取指定索引位置的的单个字符串。(索引位置从0开始)
4. indexOf(str);查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值

字符串的截取方法:

1. substring(int index);截取从参数位置一直到字符串末尾,返回新的字符串
2. substring(int begin,int end);截取从begin位置到end位置之间的字符串,索引位置包含begin不包含end(含左不含右)

字符串与转换相关的方法:

1. toCharArray();将当前字符串拆分成为字符数组,char[]
2. getByte();获取当前字符串的底层字节数组
3. replace(oldString,newString);将所有出现的老字符串替换为新的字符串,返回替换之后的结果新字符串。
4. toLowerCase();把字符串转换为小写
5. toUpperCase(); 把字符串转换为大写

字符串去除两边的空格:
trim()

备注:CharSequence 意思是可以接收字符串类型。
字符串的分割方法:spilt(String regex);按照参数的规则,将字符串分割为若干部分,返回值为String[]