String、StringBuffer、StringBulider比较和使用

164 阅读1分钟

#是什么 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