Pregunta

¿Cómo obtengo una nueva línea dependiente de la plataforma en Java? No puedo usar " \ n " en todas partes.

¿Fue útil?

Solución

Además de la propiedad line.separator, si está utilizando java 1.5 o posterior y String.format (u otros métodos de formato ) puede usar % n como en

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   ^^

Consulte la API de Java 1.8 para Formatter para más detalles.

Otros consejos

Java 7 ahora tiene un System.lineSeparator () método.

Puedes usar

System.getProperty("line.separator");

para obtener el separador de línea

Si está intentando escribir una nueva línea en un archivo, simplemente puede usar BufferedWriter's newLine () método.

Esto también es posible: String.format ("% n ") .

O String.format ("% n "). intern () para guardar algunos bytes.

La biblioteca commons-lang tiene un campo constante llamado SystemUtils.LINE_SEPARATOR

Si está escribiendo en un archivo, utilizando una instancia de BufferedWriter , use el método newLine () de esa instancia. Proporciona una forma independiente de la plataforma para escribir la nueva línea en un archivo.

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

El fragmento de código anterior tendrá dos cadenas separadas por una nueva línea, independientemente de las plataformas.

Evita agregar cadenas usando String + String, etc. usa StringBuilder en su lugar.

String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top