【发布时间】:2019-12-01 07:04:15
【问题描述】:
我需要编写一个长字符串(4324 个字符)并希望为此目的使用 StringBuffer。大多数字符串将是空格,但有些部分包含订单详细信息。它们必须出现在某些位置。该字符串将被输入会计系统。
我正在用空格 (" ") 初始化字符串并设置长度,在本例中为 64。
public class BytteTekst {
public static void main(String[] args) {
String t1 = "Hej, jeg æder blåbærsyltetøj!";
String t2 = "foo";
StringBuffer s = new StringBuffer(" ");
s.setLength(64);
System.out.println(t1.length());
s.replace(0, t1.length(), t1);
System.out.println(s);
s.replace(t1.length() + 10, t1.length() + t2.length() + 10, t2);
System.out.println(s);
System.out.println(s.length());
}
}
java BytteTekst 的输出是
29
Hej, jeg æder blåbærsyltetøj!
Hej, jeg æder blåbærsyltetøj!foo
64
当我替换()字符串foo 时,它出现在第一个替换()之后。我需要一些空格才能得到类似这样的结果:
29
Hej, jeg æder blåbærsyltetøj!
Hej, jeg æder blåbærsyltetøj! foo
64
我是否以错误的方式使用 StringBuffer?它是否默默地忽略了我要添加的空格?
【问题讨论】:
-
顺便说一句,您应该使用
StringBuilder而不是StringBuffer。 API 基本相同,但避免了不必要的同步。 -
谢谢,我会用的。它不会从外部访问,所以我不必担心。
标签: java replace whitespace stringbuffer