String类:
1) String 字符串的值是不能改变的,改变的只是String变量的引用。
如果要改变字符串值,使用 StringBuilder,StringBuffer
String 不能改变值是因为在保存字符串的时候字符数组定义为final
private final char value[];
2) String 类覆写了 Object 类中equals方法,不再比较地址值,而是比较字符串值
equalsIngoreCase(...)
3) String s = "abc"; 创建了一个对象; 该字符串保存在栈中
String s = new String("abc"); 创建了两个对象,一个new出来的,一个是“abc”
4) 常用方法:
length();
charAt(int index);
indexOf(int ch); 返回ch在字符串中第一次出现的位置
indexOf(int ch, int fromIndex); 从fromIndex指定位置,获取ch首次出现的位置
indexOf(String str);
indexOf(String str, int fromIndex);
lastIndexOf(...); 反向索引
startWith(...)
endWith(...)
contains(...)
String(char[]) String(char[],int index, int count)将字符数组转换成字符串
copyValueOf(...) valueOf(...) 转换成字符串,静态方法。
toCharArray(...) 字符串转换成字符数组
getBytes(...)字符串转换成字节数组,可以制定编码表
replace();split();
substring(begin,end)获取子串,包含begin,不包含end.
trim()去除两端空格
5) StringBuffer 和 StringBuilder
StringBuffer 是同步的
StringBuilder 是非同步的
StringBuffer 和 StringBuilder 默认都是初始是开辟数组的大小是16
StringBuffer 和 StringBuilder 扩容的时候默认 newCapacity = value.length * 2 + 2