String、StringBuffer、StringBulide

2017-04-10  本文已影响0人  木豚

是什么

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
上一篇下一篇

猜你喜欢

热点阅读