String Java baris baru

133

Saya punya string seperti

"I am a boy".

Saya ingin mencetak seperti ini

"I 
am 
a
boy".

Adakah yang bisa membantu saya?

Md. Rashedul Hasan
sumber

Jawaban:

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
Pangeran John Wesley
sumber
@the_prole dijelaskan di sini
Pangeran John Wesley
Opsi ketiga adalah yang terbaik untuk portabilitas.
Amos Bordowitz
117

Anda juga dapat menggunakan System.lineSeparator():

String x = "Hello," + System.lineSeparator() + "there";
Emalton
sumber
8
Dalam versi Jawa lebih tua: System.getProperty("line.separator").
ROMANIA_engineer
1
Shortcut: String x = "Hello, %n there";. Menambahkan ruang di sekitar %nhanya demi keterbacaan.
Manoj Shrestha
49

Contoh

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

Keluaran

I 
 am 
 a 
 boy

Penjelasan

Lebih baik untuk digunakan %nsebagai karakter baris baru OS independen daripada \ndan lebih mudah daripada menggunakanSystem.lineSeparator()

Mengapa menggunakan %n, karena pada setiap OS, baris baru mengacu pada serangkaian karakter yang berbeda;

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

LF adalah akronim dari Line Feed dan CR adalah akronim dari Carriage Return . Karakter melarikan diri ditulis di dalam kurung. Jadi pada setiap OS, baris baru singkatan dari sesuatu yang spesifik untuk sistem. %nadalah OS agnostik, ini portabel. Itu singkatan \ndari sistem Unix atau \r\npada sistem Windows dan seterusnya. Jadi, Jangan gunakan \n, sebaliknya gunakan %n.

Levent Divilioglu
sumber
1
lihat bagian Pemisah Garis dalam dokumen
Lu55
29

Itu bisa dilakukan beberapa cara. Saya menyebutkan 2 cara sederhana.

  1. Cara yang sangat sederhana seperti di bawah ini:

    System.out.println("I\nam\na\nboy");
  2. Dapat juga dilakukan dengan penggabungan seperti di bawah ini:

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

Mencoba:

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

Untuk membuat kode portabel untuk sistem apa pun, saya akan menggunakan:

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

Ini penting karena OS yang berbeda menggunakan notasi yang berbeda untuk baris baru: Windows menggunakan "\ r \ n", Classic Mac menggunakan "\ r", dan Mac dan Linux keduanya menggunakan "\ n".

Komentator - tolong perbaiki saya jika saya salah tentang ini ...

Amos Bordowitz
sumber
7

\n digunakan untuk membuat garis terpisah;

Contoh:

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

Hasil:

I
am
boy
Surendar D
sumber
4
Harap baca jawaban lain terlebih dahulu. Solusi Anda sudah ada di sana.
Honza Zidek
6

Jika Anda hanya ingin mencetak baris baru di konsol, Anda dapat menggunakan ´ \ n´ untuk baris baru.

Jika Anda ingin memecah teks dalam komponen swing, Anda dapat menggunakan html:

String s = "<html>first line<br />second line</html>";
Stephan
sumber
Ini bekerja untuk saya. Dan saya menggunakan font unicode. Ini bekerja lebih baik.
Sahan
5

Jika Anda ingin kode Anda tidak spesifik, Anda harus menggunakan println untuk setiap kata

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

karena Windows menggunakan "\ r \ n" sebagai baris baru dan sistem unixoid hanya menggunakan "\ n"

println selalu menggunakan yang benar

Hachi
sumber
3
Ini bukan solusi yang baik untuk menulis terlalu banyak System.out.println ()
Ripon Al Wasim
@op Ingatlah bahwa println()menambahkan karakter baris baru di akhir string (bukan awal).
Wolfpack'08
@Hachi, System.lineSeparator()atau System.getProperty("line.separator")dapat digunakan untuk membuat sistem kode independen.
Ashish Kumar
3

Bagaimana dengan %nmenggunakan formatter seperti String.format():

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

Seperti jawaban ini mengatakan, ini tersedia dari java 1.5 dan merupakan cara lain untuk System.getProperty("line.separator")dan System.lineSeparator()dan, seperti dua ini, adalah OS independen .

Alex Sifuentes
sumber
2

Pemutusan Jalur Platform-Independen

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

Keluaran: bandham manikanta

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

Bandham Manikanta
sumber
1

Contoh program lengkap, dengan sentuhan menyenangkan:

Buka dokumen kosong baru dan simpan sebagai %yourJavaDirectory%/iAmABoy/iAmABoy.java. "iAmABoy" adalah nama kelas.

Rekatkan kode berikut dan bacalah. Ingat, saya seorang pemula, jadi saya menghargai semua umpan balik!

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

}

Sekarang, di terminal / cmd, browse ke %yourJavaDirectory%/iAmABoydan ketik:

javac iAmABoy.java
java iAmABoy I am a boy

Anda dapat mengganti args I am a boydengan apa saja!

Wolfpack'08
sumber
Anda tidak perlu dua loop. Entah diteruskan argslangsung ke nlSeparated()atau buat nlSeparated()skalar Stringalih-alih array. Opsi pertama mungkin lebih baik. Juga, cetak tanda tangan Anda dengan printlnbukan print.
Fisikawan Gila
Di main, ganti for (String arg : args) { nlSeparated(arg); }dengan adil nlSeparated(args);. nlSeparatedsudah menerima daftar Strings. Untuk penjelasan yang lebih baik, lihat di sini: stackoverflow.com/a/12534579/2988730
Fisikawan Gila
1

Lakukan split.

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

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

Ini berfungsi Ini akan memberikan satu karakter spasi juga sebelum memasukkan karakter

Tanushree
sumber
0

Saya menggunakan kode ini 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);
    }
}

dengan terminal saya bisa menggunakan arg I\\nam\\na\\boyuntuk melakukan System.out.printlnprint out

I
am
a
boy

masukkan deskripsi gambar di sini

Tung Duong
sumber
-1

Anda dapat menggunakan <br>tag di string Anda untuk ditampilkan di halaman html

Mehdi Roostaeian
sumber
2
Itu selalu ide yang buruk untuk menanamkan markup di output Anda. Anda tidak pernah tahu teknologi tampilan apa yang digunakan pengguna Anda. Sebaiknya simpan generik mungkin, dan gunakan filter pemformatan untuk tampilan jika perlu.
TMN
Saya mengatakan itu hanya berfungsi di halaman html, itu hanya saran untuk yang ingin menampilkan teks sederhana di halaman web.
Mehdi Roostaeian