it-swarm-id.com

String Java baris baru

Saya punya string seperti

"I am a boy".

Saya ingin mencetak seperti ini

"I 
am 
a
boy".

Adakah yang bisa membantu saya?

114
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

Anda juga dapat menggunakan System.lineSeparator() :

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

Contoh

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

Keluaran

I 
 am 
 a 
 boy

Penjelasan

Lebih baik menggunakan %n sebagai karakter baris baru OS yang independen daripada \n dan lebih mudah daripada menggunakan System.lineSeparator()

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

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

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

40

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");
    
24
Ripon Al Wasim

Mencoba:

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

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

9
Amos Bordowitz

\n digunakan untuk membuat baris terpisah;

Contoh:

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

Hasil:

I
am
boy
7
Surendar D

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

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

5
Hachi

Bagaimana dengan %n menggunakan 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") atau System.lineSeparator() dan, seperti keduanya, adalah independen OS .

3
Alex Sifuentes

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%/iAmABoy dan ketik:

javac iAmABoy.Java
java iAmABoy I am a boy

Anda dapat mengganti args I am a boy dengan apa saja!

1
Wolfpack'08

Pilih split.

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

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

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

0
Tanushree

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 dapat menggunakan arg I\\nam\\na\\boy untuk membuat System.out.println dicetak

I
am
a
boy

enter image description here

0
Tung Duong