对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder
Posted koma-vv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder相关的知识,希望对你有一定的参考价值。
package zhengze;
/*如果需要对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder
StringBuffer:【字符串缓冲器】是线程安全的,效率低
StringBuilder:【字符串操作类】是线程不安全的,效率高
*/
public class StringTest {
public static void main(String[] args) {
/*
* String s1 = "hello"; String s2 = "world"; String s3 = "wei"; String
* s4 = s1 + s2 + s3; System.out.println(s4);
*/
/*
* 使用下面方式进行字符串的拼接操作 默认会创建一个长度是16的字符数组
*/
StringBuffer sBuffer = new StringBuffer();
sBuffer.append("Monica ");
sBuffer.append("love ");
sBuffer.append("Who");
// 会调用StringBuffer中的toString()方法
System.out.println(sBuffer);//false
String s = "Monica love Who";
System.out.println(s == sBuffer.toString());// false
if ((s).equals(sBuffer)) {
System.out.println("相等");
} else {
System.out.println("不相等");//不相等
}
// 将StringBuffer对象转成字符串
String s5 = sBuffer.toString();
StringBuffer aBuffer = new StringBuffer(125);
aBuffer.append("1");
aBuffer.append("2");
aBuffer.append("3");
String as = "123";
// System.out.println(aBuffer);
// 如果想让String和StringBuffer用 == 引用数据类型比较的是地址值 ,
// StringBuffer必须调用toString()方法才和String进行比较
System.out.println(aBuffer.toString() == as);//false
System.out.println(aBuffer.equals(as));//false
}
}
-----------------------打印结果-----------------------------
Monica love Who
false
不相等
false
false
以上是关于对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder的主要内容,如果未能解决你的问题,请参考以下文章
有关string stringbuff stringbuild 的区别