java.lang.String类代表字符串。
API中说:Java程序中的所有字符串字面值(如:“abc”)都作为此类的实例实现
翻译:程序中所有带双引号的字符串都是String类的对象,就算没有new也是的。
字符串的特点:
- 字符串的内容永不可变。(重点)
- 正是因为字符串的不可变,所以字符串是可以共享使用的。
- 字符串效果上相当于是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()忽略大小写比较大小
- Object任何对象都能接收
- equals参数是一个字符串并且内容相等,才会返回true,否则返回false
- equals方法具有对称性,就是a.equals(b)与b.equals(a)效果一样。
4.如果比较双方一个常量一个变量推荐把常量字符串写在前面
常用方法:
- length();获取字符串中含有的字符个数,拿到字符串长度
- concat(str);将当前字符串和参数字符串拼接成为返回值新的字符串
- charAt(index);获取指定索引位置的的单个字符串。(索引位置从0开始)
- indexOf(str);查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值
字符串的截取方法:
- substring(int index);截取从参数位置一直到字符串末尾,返回新的字符串
- substring(int begin,int end);截取从begin位置到end位置之间的字符串,索引位置包含begin不包含end(含左不含右)
字符串与转换相关的方法:
- toCharArray();将当前字符串拆分成为字符数组,char[]
- getByte();获取当前字符串的底层字节数组
- replace(oldString,newString);将所有出现的老字符串替换为新的字符串,返回替换之后的结果新字符串。
- toLowerCase();把字符串转换为小写
- toUpperCase(); 把字符串转换为大写
字符串去除两边的空格:
trim()
备注:CharSequence 意思是可以接收字符串类型。
字符串的分割方法:spilt(String regex);按照参数的规则,将字符串分割为若干部分,返回值为String[]