如何将一个换行符附加到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已经重载了charStringtypes的方法)。

另一个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