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?

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

@the_prole dijelaskan di sini
Pangeran John Wesley

Opsi ketiga adalah yang terbaik untuk portabilitas.
Amos Bordowitz


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.


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");


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 ...


7

\n digunakan untuk membuat garis terpisah;

Contoh:

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

Hasil:

I
am
boy

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>";

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


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 .


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()


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!


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);
}

0

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

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


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


-1

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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.