Eu tenho cordas como
"I am a boy".
Quero imprimir assim
"I
am
a
boy".
Alguém pode me ajudar?
Eu tenho cordas como
"I am a boy".
Quero imprimir assim
"I
am
a
boy".
Alguém pode me ajudar?
Respostas:
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()
:
String x = "Hello," + System.lineSeparator() + "there";
System.getProperty("line.separator")
.
String x = "Hello, %n there";
. Adicionado espaço ao redor %n
apenas para facilitar a leitura.
System.out.printf("I %n am %n a %n boy");
I
am
a
boy
É 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;
Unix and modern Mac's : LF (\n)
Windows : CR LF (\r\n)
Older Macintosh Systems : CR (\r)
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
.
Isso pode ser feito de várias maneiras. Estou mencionando duas maneiras simples.
Maneira muito simples como abaixo:
System.out.println("I\nam\na\nboy");
Também pode ser feito com concatenação como abaixo:
System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");
Experimentar:
System.out.println("I\nam\na\nboy");
Para tornar o código portátil para qualquer sistema, eu usaria:
public static String newline = System.getProperty("line.separator");
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 ...
\n
é usado para fazer linha separada;
Exemplo:
System.out.print("I" +'\n'+ "am" +'\n'+ "boy");
Resultado:
I
am
boy
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:
String s = "<html>first line<br />second line</html>";
Se você deseja que seu código seja inespecífico, use println para cada palavra
System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");
porque o Windows usa "\ r \ n" como nova linha e sistemas unixóides usam apenas "\ n"
println sempre usa o correto
println()
adiciona um caractere de nova linha no final da string (não no começo).
System.lineSeparator()
ou System.getProperty("line.separator")
pode ser usado para tornar o sistema de código independente.
Que tal %n
usar um formatador como String.format()
:?
String s = String.format("I%nam%na%nboy");
Como esta resposta diz, está disponível no java 1.5 e é outra maneira de System.getProperty("line.separator")
ou System.lineSeparator()
e, como esses dois, é independente do SO .
Quebras de linha independentes de plataforma
finalString = "bandham" + System.lineSeparator() + "manikanta";
System.out.println(finalString);
Resultado:
bandham
manikanta
Notas:
Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()
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!
//The class name should be the same as your Java-file and directory name.
class iAmABoy {
//Create a variable number of String-type arguments, "strs"; this is a useful line of code worth memorizing.
public static void nlSeparated(String... strs) {
//Each argument is an str that is printed.
for (String str : strs) {
System.out.println(str);
}
}
public static void main(String[] args) {
//This loop uses 'args' . 'Args' can be accessed at runtime. The method declaration (above) uses 'str', but the method instances (as seen below) can take variables of any name in the place of 'str'.
for (String arg : args) {
nlSeparated(arg);
}
//This is a signature. ^^
System.out.print("\nThanks, Wolfpack08!");
}
}
Agora, no terminal / cmd, procure %yourJavaDirectory%/iAmABoy
e digite:
javac iAmABoy.java
java iAmABoy I am a boy
Você pode substituir os argumentos I am a boy
por qualquer coisa!
args
diretamente para nlSeparated()
ou faça nlSeparated()
pegar um escalar em String
vez de uma matriz. A primeira opção é provavelmente melhor. Além disso, imprima sua assinatura com em println
vez de print
.
main
, substitua for (String arg : args) { nlSeparated(arg); }
por apenas nlSeparated(args);
. nlSeparated
já aceita uma lista de String
s. Para uma explicação melhor, veja aqui: stackoverflow.com/a/12534579/2988730
Eu uso esse código String result = args[0].replace("\\n", "\n");
public class HelloWorld {
public static void main(String[] args) {
String result = args[0].replace("\\n", "\n");
System.out.println(result);
}
}
com o terminal eu posso usar arg I\\nam\\na\\boy
para fazer a System.out.println
impressão
I
am
a
boy
você pode usar a <br>
tag na sua string para mostrar nas páginas html