Java StringBuffer 和 StringBuilder 类
程序员文章站
2022-06-28 22:32:07
...
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
public class Test{
public static void main(String args[]){
StringBuffer sBuffer = new StringBuffer("个人学习网站1:");
StringBuilder sBuilder = new StringBuilder("个人学习网站2:");
sBuilder.append("https://blog.csdn.net/");
sBuilder.append("luomingkui1109");
System.out.println(sBuilder);
sBuffer.append("https://blog.csdn.net/");
sBuffer.append("luomingkui1109");
System.out.println(sBuffer);
}
}
//运行结果如下:
个人学习网站1:https://blog.csdn.net/luomingkui1109
个人学习网站2:https://blog.csdn.net/luomingkui1109
2.String,StringBuffer 和 StringBuilder 的区别?
String:不可变对象,每一次对 String对象的更改相当于生成一个新的String对象。
StringBuffer:可变字符序列、效率低、线程安全。
StringBuilder:可变字符序列、效率高、线程不安全。
String是不可变对象,每一次对 String对象的更改相当于生成一个新的String对象,因此,要频繁进行更改的字符串最好不要使用String,会影响效率。相比之下,StringBuffer和StringBuilder都是可更改的对象,效率要大于String,他们之间的区别是这样的: StringBuffer 是支持多线程同步的,而StringBuilder是JDK5.0后出来的,专门针对单线程。所以,从效率上讲就是这样:StringBuilder > StringBuffer > String.
3.StringBuffer 和 StringBuilder 的常用方法:
① StringBuffer append(String str) : 添加
StringBuffer insert(int offset, String str) : 插入
StringBuffer replace(int start, int end, String str):替换
StringBuffer reverse():反转
② int indexOf(String str) :返回子串的位置索引
int lastIndexOf()
③ String substring(int start, int end):取子字符串序列
④ StringBuffer delete(int start, int end):删除一段字符串
StringBuffer deleteCharAt(int index):删除指定位置字符
⑤ String toString():转换为String对象
⑥ char charAt(int n) :获取字符串中指定位置的字符
4.实例
(1) append()方法:向字符串添加内容
这个是StringBuffer类的一个方法,用来把后面的字符串接到原来的字符串上面。
public static void main(String[] args) {
StringBuffer appendSB = new StringBuffer("abc");
appendSB.append("123");
appendSB.append('2');
appendSB.append(true);
appendSB.append(123);
System.out.println("appendSB:" + appendSB);
}
(2) insert(int offset,arg)方法 :用于向字符串生成器中的指定位置插入数据内容。语法如下:
insert(int offset,arg)其中offset表示字符串生成器的位置,arg表示将插入字符串生成器的位置。
StringBuilder bf=new StringBuilder("hello");
bf.insert(5,"world");
System.out.println(bf);
(3) delete(int start,int end):删除字符串的起始位置和终止位置。
public static void main(String[] args) {
StringBuilder bf=new StringBuilder("I");
bf.insert(1," Love You");
bf.delete(2,6);
System.out.println(bf);
}
上一篇: Ansible中的同步模块(Synchronize)
下一篇: H3C设备常用命令
推荐阅读
-
夯实Java基础系列9:深入理解Class类和Object类
-
java对象是什么意思(java中的对象和类理解)
-
java集合类型(java集合类详解和使用)
-
Java 类加载之匿名类和主类相互依赖问题
-
String、StringBuffer和StringBuilder类的区别
-
Java自学-类和对象 继承
-
java中String和StringBuffer的区别
-
用Rational Rose逆向工程(java)生成类图(教程和错误解决)
-
全面解释java中StringBuilder、StringBuffer、String类之间的关系
-
Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门