Wie erhalte ich eine plattformabhängige Zeilenendmarke?
-
03-07-2019 - |
Frage
Wie erhalte ich eine plattformabhängige Newline in Java? Ich kann nicht überall verwenden "\n"
.
Lösung
Neben der line.separator Eigenschaft, wenn Sie mit Java 1.5 oder höher und die String.format (oder einer anderen Formatierung Methoden) Sie verwenden können %n
als in
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY%n", c);
//Note `%n` at end of line ^^
String s2 = String.format("Use %%n as a platform independent newline.%n");
// %% becomes % ^^
// and `%n` becomes newline ^^
Sehen Sie die Java 1.8 API für Formatter für weitere Details.
Andere Tipps
Java 7 hat jetzt eine System.lineSeparator()
Methode .
Sie können mit
System.getProperty("line.separator");
die Linie Separator erhalten
Wenn Sie versuchen, eine neue Zeile in eine Datei zu schreiben, könnten Sie einfach BufferedWriter der newLine ( Methode).
Dies ist auch möglich. String.format("%n")
oder String.format("%n").intern()
einige Bytes zu speichern.
Die commons-lang Bibliothek hat ein konstantes Feld zur Verfügung genannt SystemUtils.LINE_SEPARATOR
Wenn Sie in eine Datei schreiben, eine BufferedWriter
Instanz, verwenden Sie die newLine()
Methode dieser Instanz. Es bietet eine Plattform-unabhängige Art und Weise die neue Zeile in einer Datei zu schreiben.
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
Die obige Snippet haben zwei Strings durch eine neue Zeile unabhängig von Plattformen getrennt.
Anhängen von Strings String + String usw. verwenden String statt.
String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );