在Java中,如何更有效地附加字符串?

时间:2012-10-15 16:30:45

标签: java arrays string

我写了一个Java程序,其中,我需要附加一个字符串

" u13a2"到现有的"u1234 u12de u1386 ... u15a3"

渐渐地,弦变得越来越长。我发现每次追加所花费的时间也变得越来越长。有什么方法可以在某种程度上改善这一点吗?

我想到的实现包括:

unicodeArray += " "+unicode;

unicodeArray = unicodeArray.concat(" "+unicode);

他们给出了类似的表现。我认为造成这些糟糕表现的主要原因是特殊类型String。它为每个作业创建一个新对象。如果您也这么认为,这是否意味着我最好使用其他类型,如字节数组?

5 个答案:

答案 0 :(得分:94)

您应该使用StringBuilder类。

StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append("Some text");
stringBuilder.append("Some text");
stringBuilder.append("Some text");

String finalString = stringBuilder.toString();

另外,请访问:

答案 1 :(得分:30)

使用StringBuilder课程。在你想要做的事情上它更有效率。

答案 2 :(得分:8)

您可以使用StringBufferStringBuilder。两者都用于动态字符串操作。 StringBuffer是线程安全的,而StringBuilder则不是。

在多线程环境中使用StringBuffer。但如果它是单线程StringBuilder,建议它比StringBuffer快得多。

答案 3 :(得分:2)

- 每次附加或对其进行任何修改时,都会创建一个新的String对象。

- 因此使用append()的{​​{1}}方法(如果线程安全重要),则使用StringBuilder(如果线程安全 重要。),这将是有效的方法。

答案 4 :(得分:0)

java.lang.StringBuilder中。使用int构造函数创建初始大小。