Java String neue Zeile


Antworten:


142
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

@ the_prole hier
Prinz John Wesley

Die dritte Option eignet sich am besten für die Portabilität.
Amos Bordowitz

117

Sie können auch verwenden System.lineSeparator():

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

8
In den älteren Java-Versionen : System.getProperty("line.separator").
ROMANIA_engineer

1
Verknüpfung : String x = "Hello, %n there";. %nNur aus Gründen der Lesbarkeit wurden Leerzeichen hinzugefügt .
Manoj Shrestha

49

Beispiel

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

Ausgabe

I 
 am 
 a 
 boy

Erläuterung

Es ist besser, es %nals betriebssystemunabhängiges Zeichen für neue Zeilen zu verwenden, \nund es ist einfacher als die VerwendungSystem.lineSeparator()

Warum verwenden %n, da auf jedem Betriebssystem eine neue Zeile auf einen anderen Zeichensatz verweist;

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

LF ist das Akronym für Line Feed und CR ist das Akronym für Carriage Return . Die Escapezeichen werden in Klammern geschrieben. Auf jedem Betriebssystem steht eine neue Zeile für etwas Systemspezifisches. %nist betriebssystemunabhängig, es ist portabel. Es steht für \nauf Unix-Systemen oder \r\nauf Windows-Systemen und so weiter. Verwenden Sie also nicht \n, sondern verwenden Sie %n.


1
siehe
Zeilentrenner

29

Dies kann auf verschiedene Arten erfolgen. Ich erwähne zwei einfache Wege.

  1. Sehr einfacher Weg wie folgt:

    System.out.println("I\nam\na\nboy");
  2. Dies kann auch mit der folgenden Verkettung erfolgen:

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


13

Um den Code auf jedes System portierbar zu machen, würde ich Folgendes verwenden:

public static String newline = System.getProperty("line.separator");

Dies ist wichtig, da verschiedene Betriebssysteme unterschiedliche Notationen für Zeilenumbrüche verwenden: Windows verwendet "\ r \ n", Classic Mac verwendet "\ r" und Mac und Linux verwenden beide "\ n".

Kommentatoren - bitte korrigieren Sie mich, wenn ich mich irre ...


7

\n wird zum Erstellen einer separaten Zeile verwendet;

Beispiel:

System.out.print("I" +'\n'+ "am" +'\n'+ "boy"); 

Ergebnis:

I
am
boy

4
Bitte lesen Sie zuerst andere Antworten. Ihre Lösung ist bereits da.
Honza Zidek

6

Wenn Sie einfach eine neue Zeile in der Konsole drucken möchten, können Sie ´ \ n´ für neue Zeilen verwenden.

Wenn Sie Text in Swing-Komponenten unterbrechen möchten, können Sie HTML verwenden:

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

Das funktioniert bei mir. Und ich benutze Unicode-Schrift. Das funktioniert besser.
Sahan

5

Wenn Sie Ihren Code os-unspezifisch haben möchten, sollten Sie für jedes Wort println verwenden

System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");

weil Windows "\ r \ n" als Zeilenumbruch verwendet und unixoide Systeme nur "\ n" verwenden

println verwendet immer den richtigen


3
Dies ist keine gute Lösung, um zu viele System.out.println ()
Ripon Al Wasim

@op Denken Sie daran, dass println()am Ende der Zeichenfolge (nicht am Anfang) ein Zeilenumbruchzeichen hinzugefügt wird .
Wolfpack'08

@Hachi System.lineSeparator()oder System.getProperty("line.separator")kann verwendet werden, um das Codesystem unabhängig zu machen.
Ashish Kumar

3

Was ist %nmit einem Formatierer wie String.format()?

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

Wie diese Antwort sagt, ist es ab Java 1.5 verfügbar und ein anderer Weg zu System.getProperty("line.separator")oder System.lineSeparator()und wie diese beiden ist es unabhängig vom Betriebssystem .


2

Plattformunabhängige Zeilenumbrüche

finalString = "bandham" + System.lineSeparator() + "manikanta"; System.out.println(finalString);

Ausgabe: bandham manikanta

Anmerkungen: Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()


1

Vollständiges Programmbeispiel mit einer lustigen Wendung:

Öffnen Sie ein neues leeres Dokument und speichern Sie es unter %yourJavaDirectory%/iAmABoy/iAmABoy.java. "iAmABoy" ist der Klassenname.

Fügen Sie den folgenden Code ein und lesen Sie ihn durch. Denken Sie daran, ich bin ein Anfänger, daher freue ich mich über jedes 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!");
    } 

}

Navigieren Sie nun in terminal / cmd zu %yourJavaDirectory%/iAmABoyund geben Sie Folgendes ein:

javac iAmABoy.java
java iAmABoy I am a boy

Sie können die Argumente I am a boydurch alles ersetzen !


Sie benötigen keine zwei Schleifen. Entweder argsdirekt an einen Skalar übergeben nlSeparated()oder nlSeparated()einen Skalar Stringanstelle eines Arrays verwenden. Erste Option ist wahrscheinlich besser. Drucken Sie auch Ihre Unterschrift mit printlnstatt print.
Mad Physicist

In mainersetzen for (String arg : args) { nlSeparated(arg); }durch nur nlSeparated(args);. nlSeparatedakzeptiert bereits eine Liste von Strings. Eine bessere Erklärung finden Sie hier: stackoverflow.com/a/12534579/2988730
Mad Physicist

1

Machen Sie eine Trennung.

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

0

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

Dies funktioniert. Es wird auch ein Leerzeichen vor der Eingabe des Zeichens angegeben


0

Ich benutze diesen 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);
    }
}

Mit Terminal kann ich arg verwenden I\\nam\\na\\boy, um System.out.printlnauszudrucken

I
am
a
boy

Geben Sie hier die Bildbeschreibung ein


-1

Sie können das <br>Tag in Ihrer Zeichenfolge verwenden, um es in HTML-Seiten anzuzeigen


2
Es ist immer eine schlechte Idee, Markup in Ihre Ausgabe einzubetten. Sie wissen nie, welche Anzeigetechnologie Ihre Benutzer verwenden. Halten Sie es am besten so allgemein wie möglich und verwenden Sie bei Bedarf einen Formatierungsfilter für die Anzeige.
TMN

Ich sagte, es funktioniert nur in HTML-Seiten, es ist nur ein Vorschlag für diejenigen, die einen einfachen Text auf Webseiten anzeigen möchten.
Mehdi Roostaeian
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.