Pergunta

Como faço para obter uma nova linha dependente de plataforma em Java? Eu não posso usar "\n" em todos os lugares.

Foi útil?

Solução

Além da propriedade line.separator, se você estiver usando java 1.5 ou posterior e o String.format (ou outra formatação métodos), pode utilizar %n como em

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

Veja a Java 1.8 API para Formatter para mais detalhes.

Outras dicas

Java 7 tem agora um href="http://docs.oracle.com/javase/8/docs/api/java/lang/System.html#lineSeparator--"> método System.lineSeparator() .

Você pode usar

System.getProperty("line.separator");

para obter o separador de linha

Se você está tentando escrever uma nova linha em um arquivo, você pode simplesmente usar nova linha () método .

Esta também é possível:. String.format("%n")

Ou String.format("%n").intern() para salvar alguns bytes.

O commons-lang biblioteca tem um campo constante disponível chamado SystemUtils.LINE_SEPARATOR

Se você está escrevendo para um arquivo, usando uma instância BufferedWriter, use o método newLine() dessa instância. Ele fornece uma maneira independente de plataforma para escrever a nova linha em um arquivo.

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

O trecho acima terá duas cordas separadas por uma nova linha, independentemente das plataformas.

Evite acrescentar strings usando Cordas + Cordas etc, use StringBuilder em vez.

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top