How to append a newline to StringBuilder
I have a StringBuilder
object,
StringBuilder result = new StringBuilder();
result.append(someChar);
Now I want to append a newline character to the StringBuilder
. How can I do it?
result.append("/n");
Does not work. So, I was thinking about writing a newline using Unicode. Will this help? If so, how can I add one?
It should be
r.append("\n");
But I recommend you to do as below,
r.append(System.getProperty("line.separator"));
System.getProperty("line.separator")
gives you system-dependent newline in java. Also from Java 7 there's a method that returns the value directly: System.lineSeparator()
Another option is to use Apache Commons StrBuilder, which has the functionality that's lacking in StringBuilder.
StrBuilder.appendLn()
As of version 3.6 StrBuilder has been deprecated in favour of TextStringBuilder which has the same functionality
Escape should be done with \
, not /
.
So r.append('\n');
or r.append("\n");
will work (StringBuilder
has overloaded methods for char
and String
type).
I create original class that similar to StringBuidler and can append line by calling method 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();
}
}
Usage:
StringBuilderPlus sb = new StringBuilderPlus();
sb.appendLine("aaaaa");
sb.appendLine("bbbbb");
System.out.println(sb.toString());
Console:
aaaaa
bbbbb
For Kotlin,
StringBuilder().appendLine("your text");
Though this is a java question, this is also the first google result for Kotlin, might come in handy.