是什么
String:不可变的字符串,在对象创建后,这个对象的字符序列是不可改变的。适用于字符串不经常改变的场景。
StringBuffer:字符序列可变的字符串,是线程安全的,正因为线程安全所以每次操作字符串会有锁和解锁的额外时间开销。适用于多线程的字符串操作。
StringBuilder:与StringBuffer的功能相似,但不是线程安全,所以适合单线程的字符串操作,速度也比StringBuffer快
怎么用
String
String str = "The light shall bring victory";
String str2 = "victory";
//字符遍历
str.charAt(0); //T
//返回对应位置字符的unicode码
str.codePointAt(0); //84
//逐位比较俩个字符串的unicode码 0ture负数false ignorecase是先执行toUpperCase再执行toLowerCase
str.compareToIgnoreCase("yeah"); //-5 因为忽略大小写 t是116y是121 差5
str.compareToIgnoreCase("The light"); //20 字符串相等长度小20
//连接操作
str.concat("!!!!"); //The light shall bring victory!!!!
//是否包含
str.contains(str2); //true
//比较内容不比较类型
str.contentEquals(new StringBuffer("The light shall bring victory")); //true
str.endsWith("y"); //true
//比较内容和类型
str.equals(new StringBuffer("The light shall bring victory")); //false
//格式化字符串
System.out.printf("整数分组的效果是:%,d%n", 9989997); //9,989,997
//找出字符位置
str.indexOf('a'); //12
str.isEmpty(); //false
str.length(); //29
str.replace('l', 'd'); //The dight shadd bring victory
str.split(" "); //length:5
str.substring(4); //light shall bring victory
str.toCharArray(); //length:29
str.toLowerCase(); //the light shall bring victory
str.toUpperCase(); //THE LIGHT SHALL BRING VICTORY
//省略头尾空格
str.trim(); //The light shall bring victory
String.valueOf(3.4); //3.4
JAVA 字符串格式化 - String.format() 的使用
StringBuffer,StringBuilder额外的方法
StringBuffer sbr = new StringBuffer("The light shall bring victory");
sbr.append("!!!"); //The light shall bring victory!!!
sbr.delete(0, 3); // light shall bring victory!!!
sbr.insert(0, "That"); //That light shall bring victory!!!
sbr.reverse(); //!!!yrotciv gnirb llahs thgil tahT