如何将一个换行符附加到StringBuilder
我有一个StringBuilder
对象,
StringBuilder result = new StringBuilder(); result.append(someChar);
现在我想追加一个换行符到StringBuilder
。 我该怎么做?
result.append("/n");
不起作用。 所以,我正在考虑用Unicode编写一个换行符。 这会有帮助吗? 如果是这样,我该如何添加一个?
它应该是
r.append("\n");
但是我build议你做如下,
r.append(System.getProperty("line.separator"));
System.getProperty("line.separator")
给你在java中依赖于系统的换行符。 另外从Java 7还有一个直接返回值的方法: System.lineSeparator()
应该用\
来完成转义,而不是/
。
所以r.append('\n');
或r.append("\n");
将工作( StringBuilder
已经重载了char
和String
types的方法)。
另一个select是使用Apache Commons StrBuilder,它具有StringBuilder中缺less的function。
StrBuilder.appendLn()
你可以使用line.seperator
来追加新的行
您也可以在String.format
(请参阅java.util.Formatter
)中使用行分隔符,这也是平台不可知的。
即:
result.append(String.format("%n", ""));
如果您需要添加更多行空格,请使用:
result.append(String.format("%n%n", ""));
你也可以使用StringFormat
格式化你的整个string,最后用换行符。
result.append(String.format("%10s%n%n", "This is my string."));
我创build类似于StringBuidler的原始类,并可以通过调用方法appendLine(String str)来追加行。
public class StringBuilderPlus { private StringBuilder sb; public StringBuilderPlus(){ sb = new StringBuilder(); } public void append(String str) { sb.append(str != null ? str : ""); } public void appendLine(String str) { sb.append(str != null ? str : "").append(System.getProperty("line.separator")); } public String toString() { return sb.toString(); } }
用法:
StringBuilderPlus sb = new StringBuilderPlus(); sb.appendLine("aaaaa"); sb.appendLine("bbbbb"); System.out.println(sb.toString());
安慰:
aaaaa bbbbb