Ho una stringa come
"I am a boy".
Voglio stampare in questo modo
"I
am
a
boy".
Qualcuno può aiutarmi?
Ho una stringa come
"I am a boy".
Voglio stampare in questo modo
"I
am
a
boy".
Qualcuno può aiutarmi?
Risposte:
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
Puoi anche usare System.lineSeparator()
:
String x = "Hello," + System.lineSeparator() + "there";
System.getProperty("line.separator")
.
String x = "Hello, %n there";
. Aggiunti spazi intorno %n
solo per motivi di leggibilità.
System.out.printf("I %n am %n a %n boy");
I
am
a
boy
È preferibile utilizzare %n
come carattere di nuova riga indipendente dal sistema operativo anziché \n
ed è più semplice dell'usoSystem.lineSeparator()
Perché usare %n
, perché su ciascun sistema operativo, la nuova riga si riferisce a un diverso set di caratteri;
Unix and modern Mac's : LF (\n)
Windows : CR LF (\r\n)
Older Macintosh Systems : CR (\r)
LF è l'acronimo di Line Feed e CR è l'acronimo di Carriage Return . I caratteri di escape sono scritti tra parentesi. Quindi su ogni sistema operativo, la nuova linea rappresenta qualcosa di specifico per il sistema. %n
è indipendente dal sistema operativo, è portatile. Sta per \n
sistemi Unix o \r\n
Windows e così via. Pertanto, non utilizzare \n
, utilizzare invece %n
.
Può essere fatto in diversi modi. Sto citando 2 modi semplici.
Modo molto semplice come di seguito:
System.out.println("I\nam\na\nboy");
Può anche essere fatto con concatenazione come di seguito:
System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");
Provare:
System.out.println("I\nam\na\nboy");
Per rendere il codice portatile su qualsiasi sistema, vorrei usare:
public static String newline = System.getProperty("line.separator");
Questo è importante perché diversi sistemi operativi usano notazioni diverse per newline: Windows usa "\ r \ n", Classic Mac usa "\ r" e Mac e Linux usano entrambi "\ n".
Commentatori - per favore correggimi se sbaglio su questo ...
\n
è usato per creare una linea separata;
Esempio:
System.out.print("I" +'\n'+ "am" +'\n'+ "boy");
Risultato:
I
am
boy
Se vuoi semplicemente stampare una nuova riga nella console puoi usare ´ \ n´ per le nuove righe.
Se vuoi rompere il testo nei componenti swing puoi usare html:
String s = "<html>first line<br />second line</html>";
Se vuoi avere il tuo codice non specifico, dovresti usare println per ogni parola
System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");
perché Windows usa "\ r \ n" come sistemi newline e unixoid usano solo "\ n"
println usa sempre quello corretto
println()
aggiunge un carattere di nuova riga alla fine della stringa (non all'inizio).
System.lineSeparator()
o System.getProperty("line.separator")
può essere utilizzato per rendere indipendente il sistema di codice.
Che ne dici di %n
usare un formatter simile String.format()
?:
String s = String.format("I%nam%na%nboy");
Come dice questa risposta , è disponibile da Java 1.5 ed è un altro modo per System.getProperty("line.separator")
o System.lineSeparator()
e, come questi due, è indipendente dal sistema operativo .
Interruzioni di linea indipendenti dalla piattaforma
finalString = "bandham" + System.lineSeparator() + "manikanta";
System.out.println(finalString);
Produzione:
bandham
manikanta
Appunti:
Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()
Esempio di programma completo, con una svolta divertente:
Apri un nuovo documento vuoto e salvalo come %yourJavaDirectory%/iAmABoy/iAmABoy.java
. "iAmABoy" è il nome della classe.
Incolla il seguente codice e leggilo. Ricorda, sono un principiante, quindi apprezzo tutto il 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!");
}
}
Ora, in terminal / cmd, cerca %yourJavaDirectory%/iAmABoy
e digita:
javac iAmABoy.java
java iAmABoy I am a boy
Puoi sostituire gli arg I am a boy
con qualsiasi cosa!
args
direttamente nlSeparated()
o fare nlSeparated()
prendere uno scalare String
invece di un array. La prima opzione è probabilmente migliore. Inoltre, stampa la tua firma con println
invece di print
.
main
, sostituisci for (String arg : args) { nlSeparated(arg); }
con just nlSeparated(args);
. nlSeparated
accetta già un elenco di String
s. Per una spiegazione migliore, vedere qui: stackoverflow.com/a/12534579/2988730
Io uso questo codice 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);
}
}
con il terminale posso usare arg I\\nam\\na\\boy
per fare la System.out.println
stampa
I
am
a
boy
puoi usare il <br>
tag nella tua stringa per mostrare in pagine html