Java String yeni satır


134

Benim gibi ipim var

"I am a boy".

Bu şekilde yazdırmak istiyorum

"I 
am 
a
boy".

Birisi bana yardım edebilir mi?

Yanıtlar:


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


Üçüncü seçenek, taşınabilirlik için en iyisidir.
Amos Bordowitz


49

Misal

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

Çıktı

I 
 am 
 a 
 boy

açıklama

Bunun %nyerine işletim sisteminden bağımsız bir yeni satır karakteri olarak kullanmak \ndaha iyidir ve kullanmaktan daha kolaydır.System.lineSeparator()

Neden kullanılmalı %n, çünkü her işletim sisteminde, yeni satır farklı bir karakter kümesini ifade eder;

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

LF , Line Feed'in kısaltmasıdır ve CR , Carriage Return'ün kısaltmasıdır . Kaçış karakterleri parantez içinde yazılır. Yani her işletim sisteminde yeni hat, sisteme özgü bir şeyi ifade eder. %nişletim sisteminden bağımsızdır, taşınabilirdir. Bu açılımı \nUnix sistemleri üzerinde veya \r\nWindows sistemlerinde ve bu kadar. Bu nedenle kullanmayın \n, bunun yerine kullanın %n.


1
bkz Satır Ayırıcı bölümüne dokümanlarında
Lu55

29

Birkaç şekilde yapılabilir. 2 basit yoldan bahsediyorum.

  1. Aşağıdaki gibi çok basit bir yol:

    System.out.println("I\nam\na\nboy");
  2. Aşağıdaki gibi birleştirme ile de yapılabilir:

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


13

Kodu herhangi bir sisteme taşınabilir yapmak için şunu kullanırdım:

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

Bu önemlidir çünkü farklı işletim sistemleri satırsonu için farklı gösterimler kullanır: Windows "\ r \ n" kullanır, Klasik Mac "\ r" kullanır ve Mac ve Linux her ikisi de "\ n" kullanır.

Yorumcular - bu konuda yanılıyorsam lütfen beni düzeltin ...


7

\n ayrı hat yapmak için kullanılır;

Misal:

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

Sonuç:

I
am
boy

4
Lütfen önce diğer cevapları okuyun. Çözümünüz zaten orada.
Honza Zídek

6

Konsolda sadece yeni satır yazdırmak istiyorsanız, yeni satırlar için "\ n" kullanabilirsiniz.

Swing bileşenlerinde metni kırmak istiyorsanız html'yi kullanabilirsiniz:

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

Bu benim için çalışıyor. Ve unicode yazı tipi kullanıyorum. Bu daha iyi çalışıyor.
Sahan

5

Kodunuzun os-belirsiz olmasını istiyorsanız, her kelime için println kullanmalısınız.

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

çünkü Windows yeni satır olarak "\ r \ n" kullanır ve unixoid sistemler yalnızca "\ n" kullanır

println her zaman doğru olanı kullanır


3
Bu çok fazla System.out.println yazmak için iyi bir çözüm değil ()
Ripon Al Wasim

@op Dizenin sonunaprintln() bir yeni satır karakteri eklediğini unutmayın (başlangıca değil).
Wolfpack'08

@Hachi System.lineSeparator()veya System.getProperty("line.separator")kod sistemini bağımsız yapmak için kullanılabilir.
Ashish Kumar

3

Ne hakkında %nböyle bir biçimlendirici kullanarak String.format():

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

As Bu cevap java 1.5 onun mevcut diyor ve başka bir yol olduğunu System.getProperty("line.separator")ya System.lineSeparator()ve bu ikisi gibi, bir işletim sistemi bağımsız .


2

Platformdan Bağımsız Satır Sonları

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

Çıktı: bandham manikanta

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


1

Eğlenceli bir dokunuşla tam program örneği:

Yeni bir boş belge açın ve farklı kaydedin %yourJavaDirectory%/iAmABoy/iAmABoy.java. "iAmABoy" sınıf adıdır.

Aşağıdaki kodu yapıştırın ve okuyun. Unutma, ben bir acemiyim, bu yüzden tüm geri bildirimleri takdir ediyorum!

//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!");
    } 

}

Şimdi, terminal / cmd'de göz atın %yourJavaDirectory%/iAmABoyve şunu yazın:

javac iAmABoy.java
java iAmABoy I am a boy

Değiştirgeleri I am a boyherhangi bir şeyle değiştirebilirsiniz !


İki döngüye ihtiyacınız yok. Ya pas argsdoğrudan nlSeparated()veya yapmak nlSeparated()bir sayıl almak Stringbir dizinin yerine. İlk seçenek muhtemelen daha iyidir. Ayrıca imzanızı printlnyerine ile yazdırın print.
Mad Physicist

İçinde main, for (String arg : args) { nlSeparated(arg); }sadece ile değiştirin nlSeparated(args);. nlSeparatedzaten bir e listesi kabul ediyor String. Daha iyi bir açıklama için buraya bakın: stackoverflow.com/a/12534579/2988730
Mad Physicist

1

Bölünmeye gidin.

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

0

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

Bu çalışır Karakter girilmeden önce de bir boşluk karakteri verir.


0

Bu kodu kullanıyorum 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);
    }
}

terminal ile çıktı I\\nam\\na\\boyalmak için arg kullanabilirimSystem.out.println

I
am
a
boy

görüntü açıklamasını buraya girin


-1

<br>html sayfalarında göstermek için dizenizdeki etiketi kullanabilirsiniz


2
Çıktınıza işaretleme eklemek her zaman kötü bir fikirdir. Kullanıcılarınızın hangi görüntüleme teknolojisini kullandığını asla bilemezsiniz. Mümkün olduğunca genel tutmak ve gerekirse görüntülemek için bir biçimlendirme filtresi kullanmak en iyisidir.
TMN

Sadece html sayfasında çalıştığını söyledim, sadece web sayfalarında basit bir metin göstermek isteyenler için bir öneri.
Mehdi Roostaeian
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.