Come posso ottenere un carattere di nuova riga dipendente dalla piattaforma?

Come posso ottenere una nuova riga dipendente dalla piattaforma in Java? Non posso usare "\n" ovunque.

Oltre alla proprietà line.separator, se si utilizza java 1.5 o versioni successive e String.format (o altri metodi di formattazione ) è ansible utilizzare %n come 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 ^^ 

Vedi l’ API Java 1.8 per Formatter per maggiori dettagli.

Puoi usare

 System.getProperty("line.separator"); 

per ottenere il separatore di riga

Java 7 ora ha un metodo System.lineSeparator() .

Se stai cercando di scrivere una nuova riga in un file, puoi semplicemente utilizzare il metodo newLine () di BufferedWriter.

Questo è anche ansible: String.format("%n") .

Oppure String.format("%n").intern() per salvare alcuni byte.

La libreria commons-lang ha un campo costante disponibile chiamato SystemUtils.LINE_SEPARATOR

Se si sta scrivendo su un file, utilizzando un’istanza di BufferedWriter , utilizzare il metodo newLine() dell’istanza. Fornisce un modo indipendente dalla piattaforma per scrivere la nuova riga in un file.

 StringBuilder newLine=new StringBuilder(); newLine.append("abc"); newline.append(System.getProperty("line.separator")); newline.append("def"); String output=newline.toString(); 

Lo snippet sopra riportato avrà due stringhe separate da una nuova riga indipendentemente dalle piattaforms.

Evita di accodare stringhe usando String + String ecc., Usa invece StringBuilder.

 String separator = System.getProperty( "line.separator" ); StringBuilder lines = new StringBuilder( line1 ); lines.append( separator ); lines.append( line2 ); lines.append( separator ); String result = lines.toString( );