Eu tenho cordas como
"I am a boy".
Quero imprimir assim
"I
am
a
boy".
Alguém pode me ajudar?
System.out.println("I\nam\na\nboy");
System.out.println("I am a boy".replaceAll("\\s+","\n"));
System.out.println("I am a boy".replaceAll("\\s+",System.getProperty("line.separator"))); // portable way
Você também pode usar
System.lineSeparator()
:fonte
System.getProperty("line.separator")
.String x = "Hello, %n there";
. Adicionado espaço ao redor%n
apenas para facilitar a leitura.Exemplo
Resultado
Explicação
É melhor usar
%n
como um caractere de nova linha independente do SO,\n
e é mais fácil do que usarSystem.lineSeparator()
Por que usar
%n
, porque em cada sistema operacional, a nova linha se refere a um conjunto diferente de caracteres;LF é a sigla de Line Feed e CR é a sigla de Carriage Return . Os caracteres de escape são escritos entre parênteses. Portanto, em cada sistema operacional, a nova linha representa algo específico para o sistema.
%n
é independente do sistema operacional, é portátil. Ele representa\n
sistemas Unix ou\r\n
sistemas Windows e assim por diante. Portanto, não use\n
, use%n
.fonte
Isso pode ser feito de várias maneiras. Estou mencionando duas maneiras simples.
Maneira muito simples como abaixo:
Também pode ser feito com concatenação como abaixo:
fonte
Experimentar:
fonte
Para tornar o código portátil para qualquer sistema, eu usaria:
Isso é importante porque diferentes sistemas operacionais usam notações diferentes para a nova linha: o Windows usa "\ r \ n", o Classic Mac usa "\ r" e o Mac e Linux usam "\ n".
Comentaristas - corrija-me se eu estiver errado quanto a isso ...
fonte
\n
é usado para fazer linha separada;Exemplo:
Resultado:
fonte
Se você simplesmente deseja imprimir uma nova linha no console, pode usar '\ n' para novas linhas.
Se você deseja quebrar o texto nos componentes do balanço, pode usar o html:
fonte
Se você deseja que seu código seja inespecífico, use println para cada palavra
porque o Windows usa "\ r \ n" como nova linha e sistemas unixóides usam apenas "\ n"
println sempre usa o correto
fonte
println()
adiciona um caractere de nova linha no final da string (não no começo).System.lineSeparator()
ouSystem.getProperty("line.separator")
pode ser usado para tornar o sistema de código independente.Que tal
%n
usar um formatador comoString.format()
:?Como esta resposta diz, está disponível no java 1.5 e é outra maneira de
System.getProperty("line.separator")
ouSystem.lineSeparator()
e, como esses dois, é independente do SO .fonte
finalString = "bandham" + System.lineSeparator() + "manikanta"; System.out.println(finalString);
Resultado:
bandham manikanta
fonte
Exemplo de programa completo, com um toque divertido:
Abra um novo documento em branco e salve-o como
%yourJavaDirectory%/iAmABoy/iAmABoy.java
. "iAmABoy" é o nome da classe.Cole o seguinte código e leia-o. Lembre-se, eu sou iniciante, então agradeço todo o feedback!
Agora, no terminal / cmd, procure
%yourJavaDirectory%/iAmABoy
e digite:Você pode substituir os argumentos
I am a boy
por qualquer coisa!fonte
args
diretamente paranlSeparated()
ou façanlSeparated()
pegar um escalar emString
vez de uma matriz. A primeira opção é provavelmente melhor. Além disso, imprima sua assinatura com emprintln
vez deprint
.main
, substituafor (String arg : args) { nlSeparated(arg); }
por apenasnlSeparated(args);
.nlSeparated
já aceita uma lista deString
s. Para uma explicação melhor, veja aqui: stackoverflow.com/a/12534579/2988730Vá para uma divisão.
fonte
System.out.println ("Eu \ nam \ na \ nboy");
Isso funciona Também fornecerá um caractere de espaço antes de inserir o caractere
fonte
Eu uso esse código
String result = args[0].replace("\\n", "\n");
com o terminal eu posso usar arg
I\\nam\\na\\boy
para fazer aSystem.out.println
impressãofonte
você pode usar a
<br>
tag na sua string para mostrar nas páginas htmlfonte