Ich habe ein StringBuilder
Objekt,
StringBuilder result = new StringBuilder();
result.append(someChar);
Jetzt möchte ich ein Zeilenumbruchzeichen an das anhängen StringBuilder
. Wie kann ich es tun?
result.append("/n");
Funktioniert nicht. Also habe ich darüber nachgedacht, eine neue Zeile mit Unicode zu schreiben. Wird das helfen? Wenn ja, wie kann ich eine hinzufügen?
java
stringbuilder
Illep
quelle
quelle
"\n"
oderSystem.getProperty("line.separator")
.Antworten:
Es sollte sein
Aber ich empfehle Ihnen, wie unten zu tun,
System.getProperty("line.separator")
gibt Ihnen systemabhängige Zeilenumbrüche in Java. Auch von Java 7 gibt es eine Methode, die den Wert direkt zurückgibt:System.lineSeparator()
quelle
StringBuilder#appendLine()
Methode gibt.System.lineSeparator()
In der Dokumentation wird "Gibt die systemabhängige Zeilentrennzeichenfolge zurück." Dies ist nicht plattformunabhängig. Verwenden Sie diesen Code, wenn Sie eine Zeichenfolge schreiben müssen, die vom zugrunde liegenden Betriebssystem verwendet wird, andernfalls verwenden Sie'\n'
.System.lineSeparator()
sollte verwendet werden, wenn Sie mit nicht portablen Ressourcen arbeiten (dh Ressourcen, die für das zugrunde liegende Betriebssystem spezifisch sind). Es hat einen anderen Wert, ob Sie Java unter Windows (\ r \ n) oder Unix (\ n) ausführen. Wenn Sie dieSystem.lineSeparator()
ganze Zeit verwenden, werden Sie daher nicht tragbare Dateien erstellen.appendLine
ÜberlastungStringBuilder
.Eine weitere Option ist die Verwendung von Apache Commons StrBuilder, dessen Funktionalität in StringBuilder fehlt.
StrBuilder.appendLn ()
Ab Version 3.6 ist StrBuilder zugunsten von TextStringBuilder mit der gleichen Funktionalität veraltet
quelle
deprecated
. Bitte benutzenorg.apache.commons.text.TextStringBuilder
.Flucht sollte getan werden
\
, nicht/
.Also
r.append('\n');
oderr.append("\n");
wird funktionieren (StringBuilder
hat Methoden fürchar
undString
Typ überladen ).quelle
Sie können
line.seperator
zum Anhängen einer neuen Zeile in verwendenquelle
Ich erstelle eine ursprüngliche Klasse, die StringBuidler ähnelt, und kann die Zeile durch Aufrufen der Methode appendLine (String str) anhängen.
Verwendung:
Konsole:
quelle
Sie können auch das Zeilentrennzeichen in
String.format
(Siehejava.util.Formatter
) verwenden, das ebenfalls plattformunabhängig ist.dh:
Wenn Sie weitere Zeilenabstände hinzufügen müssen, verwenden Sie einfach:
Sie können auch
StringFormat
Ihre gesamte Zeichenfolge mit einem oder mehreren Zeilenumbrüchen am Ende formatieren.quelle
Für Kotlin
StringBuilder().appendln("your text");
Obwohl dies eine Java-Frage ist, ist dies auch das erste Google-Ergebnis für Kotlin, das sich als nützlich erweisen könnte.
quelle
Zusätzlich zur Antwort von KS, eine StringBuilderPlus-Klasse zu erstellen und das Adaptermuster zum Erweitern einer endgültigen Klasse zu verwenden, können Sie, wenn Sie Generika verwenden und das StringBuilderPlus-Objekt in den neuen Methoden append und appendLine zurückgeben, die vielen Append-Methoden von StringBuilders verwenden für alle verschiedenen Typen, während die Fähigkeit wiedererlangt wird, mehrere Anhängebefehle miteinander zu verbinden, wie unten gezeigt
Sie können dies dann genau wie die ursprüngliche StringBuilder-Klasse verwenden:
quelle
Verwenden Sie dies für Android zum Lesen und Schreiben!
quelle