web-dev-qa-db-fra.com

Java Nouvelle ligne de chaîne

J'ai des ficelles comme

"I am a boy".

Je veux imprimer comme ça

"I 
am 
a
boy".

Quelqu'un peut-il m'aider?

117
Md. Rashedul Hasan
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
131
Prince John Wesley

Vous pouvez également utiliser System.lineSeparator() :

String x = "Hello," + System.lineSeparator() + "there";
107
Emalton

Exemple

System.out.printf("I %n am %n a %n boy");

Sortie

I 
 am 
 a 
 boy

Explication

Il est préférable d'utiliser %n en tant que caractère de nouvelle ligne indépendant du système d'exploitation au lieu de \n, ce qui est plus simple que d'utiliser System.lineSeparator().

Pourquoi utiliser %n, car sur chaque système d’exploitation, la nouvelle ligne fait référence à un ensemble de caractères différent;

Unix and modern Mac's   :   LF     (\n)
Windows                 :   CR LF  (\r\n)
Older Macintosh Systems :   CR     (\r)

LF est l'acronyme de saut de ligne et CR est l'acronyme de retour chariot. Les caractères d'échappement sont écrits entre parenthèses. Ainsi, sur chaque système d'exploitation, nouvelle ligne représente quelque chose de spécifique au système. %n est agnostique, il est portable. Cela signifie \n sur les systèmes Unix ou \r\n sur les systèmes Windows, etc. Ainsi, n'utilisez pas \n, utilisez plutôt %n.

41
Levent Divilioglu

Cela peut être fait de plusieurs manières. Je mentionne 2 façons simples.

  1. Manière très simple comme ci-dessous:

    System.out.println("I\nam\na\nboy");
    
  2. Cela peut également être fait avec la concaténation comme ci-dessous:

    System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");
    
24
Ripon Al Wasim

Essayer:

System.out.println("I\nam\na\nboy");
14
Andrea Girardi

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 systèmes d’exploitation utilisent des notations différentes pour newline: Windows utilise "\ r\n", Classic Mac utilise "\ r", et Mac et Linux utilisent tous deux "\ n".

Commentaires, corrigez-moi si je me trompe ...

9
Amos Bordowitz

\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
7
Surendar D

Si vous souhaitez simplement imprimer une nouvelle ligne dans la console, vous pouvez utiliser "\ n" pour les nouvelles lignes.

Si vous souhaitez insérer du texte dans des composants Swing, vous pouvez utiliser HTML:

String s = "<html>first line<br />second line</html>";
6
Stephan

Si vous voulez que votre code soit non 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");

parce que Windows utilise "\ r\n" comme nouvelle ligne et que les systèmes unixoides utilisent uniquement "\ n"

println utilise toujours le bon

5
Hachi

Qu'en est-il de %n en utilisant un formateur comme String.format() ?:

String s = String.format("I%nam%na%nboy");

Comme cette réponse , il est disponible à partir de Java 1.5 et constitue un autre moyen de System.getProperty("line.separator") ou System.lineSeparator() et, comme pour ces deux cas, est indépendant du système d'exploitation .

3
Alex Sifuentes

Exemple de programme complet, avec une touche amusante:

Ouvrez un nouveau document vierge et enregistrez-le sous le nom %yourJavaDirectory%/iAmABoy/iAmABoy.Java. "iAmABoy" est le nom de la classe.

Collez le code suivant et lisez-le. N'oubliez pas que je suis débutant, j'apprécie donc 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, accédez à %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!

1
Wolfpack'08

optez pour une scission.

String string = "I am a boy";
for (String part : string.split(" ")) {
    System.out.println(part);
}
1
mrVoid

System.out.println ("I\nam\na\nboy");

Cela fonctionne Il donnera un caractère d'espace également avant d'entrer le caractère

0
Tanushree

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 terminal, je peux utiliser arg I\\nam\\na\\boy pour faire System.out.println imprimer

I
am
a
boy

enter image description here

0
Tung Duong