在Java中,如何更有效地追加字符串?
我编写了一个Java程序,其中需要附加一个字符串在Java中,如何更有效地追加字符串?,java,arrays,string,Java,Arrays,String,我编写了一个Java程序,其中需要附加一个字符串 “u13a2”到现有的“u1234 u12de u1386…u15a3” 因此,绳子逐渐变得越来越长。我发现在每个附加上花费的时间也越来越长。我们有什么办法可以在一定程度上改善这一点吗 我想到的实施包括: unicodeArray += " "+unicode; 或 他们表现相似。我认为导致这些糟糕性能的主要原因是特殊类型的String。它为每个赋值创建一个新对象。如果您也这么认为,这是否意味着我最好使用另一种类型,如字节数组?使用类。它在你试
“u13a2”
到现有的“u1234 u12de u1386…u15a3”
因此,绳子逐渐变得越来越长。我发现在每个附加上花费的时间也越来越长。我们有什么办法可以在一定程度上改善这一点吗
我想到的实施包括:
unicodeArray += " "+unicode;
或
他们表现相似。我认为导致这些糟糕性能的主要原因是特殊类型的
String
。它为每个赋值创建一个新对象。如果您也这么认为,这是否意味着我最好使用另一种类型,如字节数组?使用类。它在你试图做的事情上更有效率 您可以为此使用StringBuffer
或StringBuilder
。两者都用于动态字符串操作<代码>StringBuffer是线程安全的,而asStringBuilder
不是
在多线程环境中使用
StringBuffer
。但是如果它是单线程的,则建议使用StringBuilder
,并且比StringBuffer
快得多 java.lang.StringBuilder。使用int构造函数创建初始大小。您应该使用该类
此外,请浏览:
字符串
对象
-所以使用
StringBuilder
的append()
方法(如果线程安全性不重要),否则使用StringBuffer
(如果线程安全性重要),这将是有效的方法。StringBuffer也是线程安全的。看看这是怎么回事:StringBuilder不是线程安全的,而StringBuffer是。但是谁在并发线程中操纵单个字符序列呢?我相信StringBuffer的线程安全没有任何用处。它完全取决于需求。相关:我们需要多少重复的StringBuilder
答案?@SteveKuo投票结束这个多余的问题比发布投诉更快。很棒的链接,@OrangeDog
unicodeArray = unicodeArray.concat(" "+unicode);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Some text");
stringBuilder.append("Some text");
stringBuilder.append("Some text");
String finalString = stringBuilder.toString();