StringBuffer 和 StringBuilde
任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指向而已。
通常来讲String的操作比较简单,但是由于String的不可更改特性,为了方便字符串的修改,提供StringBuffer和StringBuilder类
这里的两个类大致一样,下面用StringBuilde来举例说明
1.添加字符串:append()
代码语言:javascript复制StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("hello" );//用append来添加字符串
stringBuilder.append("c");
StringBuilde能支持链式调用(能支持链式调用的核心是append返回值是this)
代码语言:javascript复制 stringBuilder.append("hello").append("c");//支持链式调用
2.逆置一个字符串: reverse()
代码语言:javascript复制StringBuilder stringBuilder = new StringBuilder("axcv");
stringBuilder.reverse();
也可以进行链式调用:
代码语言:javascript复制stringBuilder.reverse().reverse();
3.插入操作:insert()
代码语言:javascript复制stringBuilder.insert(int offset, 各种数据类型 b)
4.删除操作:delete()
代码语言:javascript复制StringBuilder sb = new StringBuilder("helloworld");
System.out.println(sb.delete(5, 10));//前闭后开区间
String,StringBuffer 和 StringBuilde的区别
- String的内容不可修改,StringBuffer与StringBuilder的内容可以修改
- StringBuffer与StringBuilder大部分功能是相似的
- StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作