String、StringBuffer和StringBuilder之间的区别主要有以下几点:
- String类的对象不能二次修改,若强行修改,相当于隐形重新新建了一个对象,释放了原有的对象;StringBuffer和StringBuilder类创建的对象是可变的,可以通过append()、insert()、reverse()等等方法来修改值;
- StringBuffer:线程安全的;StringBuilder:线程非安全的,慎用;
- 字符串连接String的+比StringBuffer(StringBuilder)的Append()性能相差了很多,三者在执行速度方面的比较:StringBuilder > StringBuffer > String;
因此可以了解到,在字符串变量需要经常改变的时候,推荐使用StringBuffer,而固定值的情况可以使用String;如果要操作少量的数据用 String;多线程操作字符串缓冲区下操作大量数据 StringBuffer;单线程操作字符串缓冲区下操作大量数据StringBuilder;
String、StringBuffer和StringBuilder之间的常用方法:
String 字符串常用的方法:
(1)字符串长度:length()
通过length() 方法就能检测到该字符串的长度,直接在控制台输入;
(2)字符串转换成字符数组:toCharArray()
结果:
(3)从字符串取出指定位置的字符:charAt()
结果:
(4)字符串与byte数组的转换:getBytes()
结果:
(5)返回指定的字符在字符串中的位置:indexOf()
结果:
(6)去掉字符串的前后空格:trim()
结果:
(7)从字符串中取出子字符串:subString()
结果:
StringBuffer字符串常用方法:
1、 Append:追加字符串;
结果:
2、 Insert:插入值;
使用语法:字符串对象.关键字(索引,值) = sb.insert(1,”1223”);
注意:索引就是把值从哪个位置插入;
结果:
3、 Replace:替换;
使用语法:字符串对象.关键字(开始索引,结束索引,替换值) = sb.insert(0,7,”z”);
注意:开始索引就是从哪个位置替换;结束索引就是最后替换的位置;
结果:
4、 Delete:删除;
使用语法:字符串对象.关键字(开始索引,结束索引,替换值) = sb.insert(0,7,”z”);
注意:开始索引就是从哪个位置删除;结束索引就是最后删除的位置;
结果:
5、 Reverse:反转
结果:
StringBuilder常用方法跟StringBuffer一样;