Como obtenho uma nova linha dependente da plataforma em Java? Eu não posso usar em "\n"
todos os lugares.
java
cross-platform
newline
eol
Spoike
fonte
fonte
Respostas:
Além da propriedade line.separator, se você estiver usando o java 1.5 ou posterior e o String.format (ou outros métodos de formatação ), poderá usar
%n
como emConsulte a API Java 1.8 para Formatter para obter mais detalhes.
fonte
%
da entrada do usuário!String.format(s + "%n")
é facilmente resolvidoString.format("%s%n", s)
. É sempre arriscado envolver a entrada do usuário como corpo do formato (da mesma maneira queeval()
).O Java 7 agora tem um
System.lineSeparator()
método.fonte
lineSeperator(int)
que retornasse um número de separadores de linha, pois geralmente me vejo usando 2 de uma vez.String.join("", Collections.nCopies(5, System.lineSeparator()))
System.lineSeparator().repeat(5)
Você pode usar
para obter o separador de linha
fonte
System.lineSeparator()
detalhes do Java 7, então aqui está uma resposta definitiva para esta pergunta?Se você estiver tentando escrever uma nova linha em um arquivo, você pode simplesmente usar o método newLine () do BufferedWriter .
fonte
Isso também é possível:
String.format("%n")
.Ou
String.format("%n").intern()
para salvar alguns bytes.fonte
notepad
não é a ferramenta certa para visualizar o conteúdo de um arquivo. Usehexdump
ouod
.\r\n
A biblioteca commons-lang tem um campo constante disponível chamado SystemUtils.LINE_SEPARATOR
fonte
O snippet acima terá duas strings separadas por uma nova linha, independentemente das plataformas.
fonte
Se você estiver gravando em um arquivo, usando uma
BufferedWriter
instância, use onewLine()
método dessa instância. Ele fornece uma maneira independente de plataforma de escrever a nova linha em um arquivo.fonte
Evite anexar strings usando String + String etc, use StringBuilder.
fonte
string + string
".