J'ai une ficelle comme
"I am a boy".
Je veux imprimer comme ça
"I
am
a
boy".
Quelqu'un peut-il m'aider?
J'ai une ficelle comme
"I am a boy".
Je veux imprimer comme ça
"I
am
a
boy".
Quelqu'un peut-il m'aider?
Réponses:
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
Vous pouvez également utiliser System.lineSeparator()
:
String x = "Hello," + System.lineSeparator() + "there";
System.getProperty("line.separator")
.
String x = "Hello, %n there";
. Ajout d'espaces %n
juste pour des raisons de lisibilité.
System.out.printf("I %n am %n a %n boy");
I
am
a
boy
Il est préférable de l'utiliser %n
comme caractère de nouvelle ligne indépendant du système d'exploitation au lieu de \n
et c'est plus facile que d'utiliserSystem.lineSeparator()
Pourquoi l'utiliser %n
, car sur chaque OS, la nouvelle ligne se réfère à un ensemble différent de caractère (s);
Unix and modern Mac's : LF (\n)
Windows : CR LF (\r\n)
Older Macintosh Systems : CR (\r)
LF est l'acronyme de Line Feed et CR est l'acronyme de Carriage Return . Les caractères d'échappement sont écrits entre parenthèses. Ainsi, sur chaque OS, la nouvelle ligne représente quelque chose de spécifique au système. %n
est indépendant du système d'exploitation, il est portable. Cela signifie \n
sur les systèmes Unix ou \r\n
sur les systèmes Windows et ainsi de suite. Ainsi, n'utilisez pas, utilisez \n
plutôt %n
.
Cela peut être fait de plusieurs manières. Je mentionne 2 façons simples.
Manière très simple comme ci-dessous:
System.out.println("I\nam\na\nboy");
Cela peut également être fait avec la concaténation comme ci-dessous:
System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");
Essayer:
System.out.println("I\nam\na\nboy");
Pour rendre le code portable sur n'importe quel système, j'utiliserais:
public static String newline = System.getProperty("line.separator");
Ceci est important car différents OS utilisent des notations différentes pour la nouvelle ligne: Windows utilise "\ r \ n", Classic Mac utilise "\ r", et Mac et Linux utilisent tous les deux "\ n".
Commentateurs - veuillez me corriger si je me trompe sur ce point ...
\n
est utilisé pour créer une ligne séparée;
Exemple:
System.out.print("I" +'\n'+ "am" +'\n'+ "boy");
Résultat:
I
am
boy
Si vous souhaitez simplement imprimer une nouvelle ligne dans la console, vous pouvez utiliser «\ n» pour les nouvelles lignes.
Si vous souhaitez casser du texte dans les composants swing, vous pouvez utiliser html:
String s = "<html>first line<br />second line</html>";
Si vous voulez que votre code ne soit pas spécifique, vous devez utiliser println pour chaque mot
System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");
car Windows utilise "\ r \ n" comme nouvelle ligne et les systèmes unixoïdes utilisent simplement "\ n"
println utilise toujours le bon
println()
ajoute un caractère de nouvelle ligne à la fin de la chaîne (pas au début).
System.lineSeparator()
ou System.getProperty("line.separator")
peut être utilisé pour rendre le système de code indépendant.
Qu'en est-il d' %n
utiliser un formateur comme String.format()
?:
String s = String.format("I%nam%na%nboy");
Comme le dit cette réponse , il est disponible à partir de java 1.5 et est un autre moyen de System.getProperty("line.separator")
ou System.lineSeparator()
et, comme celui-ci, est indépendant du système d'exploitation .
Sauts de ligne indépendants de la plate-forme
finalString = "bandham" + System.lineSeparator() + "manikanta";
System.out.println(finalString);
Production:
bandham
manikanta
Remarques:
Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()
Exemple de programme complet, avec une touche amusante:
Ouvrez un nouveau document vierge et enregistrez-le sous %yourJavaDirectory%/iAmABoy/iAmABoy.java
. "iAmABoy" est le nom de la classe.
Collez le code suivant et lisez-le. N'oubliez pas que je suis un débutant, donc j'apprécie tous les commentaires!
//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!");
}
}
Maintenant, dans terminal / cmd, recherchez %yourJavaDirectory%/iAmABoy
et tapez:
javac iAmABoy.java
java iAmABoy I am a boy
Vous pouvez remplacer les arguments I am a boy
par n'importe quoi!
args
directement à nlSeparated()
ou faire nlSeparated()
prendre un scalaire String
au lieu d'un tableau. La première option est probablement meilleure. Imprimez également votre signature avec println
au lieu de print
.
main
, remplacez for (String arg : args) { nlSeparated(arg); }
par juste nlSeparated(args);
. nlSeparated
accepte déjà une liste de String
s. Pour une meilleure explication, voir ici: stackoverflow.com/a/12534579/2988730
J'utilise ce code 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);
}
}
avec le terminal, je peux utiliser arg I\\nam\\na\\boy
pour System.out.println
imprimer
I
am
a
boy
vous pouvez utiliser la <br>
balise dans votre chaîne pour afficher dans les pages html