Chuỗi Java mới


Câu trả lời:



117

Bạn cũng có thể sử dụng System.lineSeparator():

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

8
Trong các phiên bản Java cũ hơn : System.getProperty("line.separator").
ROMANIA_engineer

1
Phím tắt : String x = "Hello, %n there";. Thêm không gian xung quanh %nchỉ vì mục đích dễ đọc.
Manoj Shrestha

49

Thí dụ

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

Đầu ra

I 
 am 
 a 
 boy

Giải trình

Tốt hơn là sử dụng %nnhư một ký tự dòng mới độc lập của hệ điều hành thay vì\n và dễ dàng hơn sử dụngSystem.lineSeparator()

Tại sao nên sử dụng %n, bởi vì trên mỗi HĐH, dòng mới đề cập đến một bộ ký tự khác nhau;

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

LF là từ viết tắt của Line FeedCR là từ viết tắt của Vận chuyển trở lại . Các ký tự thoát được viết bên trong dấu ngoặc đơn. Vì vậy, trên mỗi hệ điều hành, dòng mới là viết tắt của một cái gì đó cụ thể cho hệ thống. %nlà hệ điều hành bất khả tri, nó là xách tay. Nó là viết tắt của \ncác hệ thống Unix hoặc \r\ntrên các hệ thống Windows, v.v. Do đó, không sử dụng \n, thay vào đó sử dụng %n.


1
xem phần Phân tách dòng trong tài liệu
Lu55

29

Nó có thể được thực hiện một số cách. Tôi đang đề cập đến 2 cách đơn giản.

  1. Cách rất đơn giản như dưới đây:

    System.out.println("I\nam\na\nboy");
  2. Nó cũng có thể được thực hiện với nối như sau:

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


13

Để làm cho mã di động đến bất kỳ hệ thống nào, tôi sẽ sử dụng:

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

Điều này rất quan trọng vì các HĐH khác nhau sử dụng các ký hiệu khác nhau cho dòng mới: Windows sử dụng "\ r \ n", Classic Mac sử dụng "\ r" và cả Mac và Linux đều sử dụng "\ n".

Bình luận viên - vui lòng sửa cho tôi nếu tôi sai về điều này ...


7

\n được sử dụng để tạo dòng riêng biệt;

Thí dụ:

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

Kết quả:

I
am
boy

4
Xin vui lòng đọc câu trả lời khác đầu tiên. Giải pháp của bạn đã có.
Honza Zidek

6

Nếu bạn chỉ đơn giản muốn in một dòng mới trong bảng điều khiển, bạn có thể sử dụng ắc \ nẻ cho các dòng mới.

Nếu bạn muốn ngắt văn bản trong các thành phần swing, bạn có thể sử dụng html:

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

Điều này làm việc cho tôi. Và tôi đang sử dụng phông chữ unicode. Điều này hoạt động tốt hơn.
Sahan

5

Nếu bạn muốn có mã os không đặc hiệu, bạn nên sử dụng println cho mỗi từ

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

bởi vì Windows sử dụng "\ r \ n" làm hệ thống dòng mới và unixoid chỉ sử dụng "\ n"

println luôn sử dụng đúng


3
Đây không phải là một giải pháp tốt để viết quá nhiều System.out.println ()
Ripon Al Wasim

@op Hãy nhớ rằng println()thêm một ký tự dòng mới ở cuối chuỗi (không phải đầu).
Wolfpack'08

@Hachi, System.lineSeparator()hoặc System.getProperty("line.separator")có thể được sử dụng để làm cho hệ thống mã độc lập.
Ashish Kumar

3

Điều gì về việc %nsử dụng một định dạng như thế String.format()nào?

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

Như câu trả lời này nói, nó có sẵn từ java 1.5 và là một cách khác để System.getProperty("line.separator")hoặc System.lineSeparator(), như hai cái này, là độc lập với hệ điều hành .


2

Phá vỡ dòng độc lập với nền tảng

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

Đầu ra: bandham manikanta

Ghi chú: Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()


1

Ví dụ chương trình đầy đủ, với một twist thú vị:

Mở một tài liệu trống mới và lưu nó dưới dạng %yourJavaDirectory%/iAmABoy/iAmABoy.java. "iAmABoy" là tên lớp.

Dán đoạn mã sau vào và đọc qua nó. Hãy nhớ rằng, tôi là người mới bắt đầu, vì vậy tôi đánh giá cao tất cả thông tin phản hồi!

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

}

Bây giờ, trong terminal / cmd, duyệt đến %yourJavaDirectory%/iAmABoyvà gõ:

javac iAmABoy.java
java iAmABoy I am a boy

Bạn có thể thay thế các đối số I am a boybằng bất cứ điều gì!


Bạn không cần hai vòng lặp. Hoặc truyền argstrực tiếp đến nlSeparated()hoặc thực hiện nlSeparated()lấy vô hướng Stringthay vì một mảng. Lựa chọn đầu tiên có lẽ tốt hơn. Ngoài ra, in chữ ký của bạn với printlnthay vì print.
Nhà vật lý điên

Trong main, thay thế for (String arg : args) { nlSeparated(arg); }bằng chỉ nlSeparated(args);. nlSeparatedđã chấp nhận một danh sách của Strings. Để được giải thích rõ hơn, xem tại đây: stackoverflow.com/a/12534579/2988730
Nhà vật lý điên

1

Đi chia tay.

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

0

System.out.println ("Tôi \ nam \ na \ nboy");

Công việc này Nó sẽ cung cấp cho một nhân vật không gian cùng trước khi nhập nhân vật


0

Tôi sử dụng mã này 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);
    }
}

với thiết bị đầu cuối tôi có thể sử dụng arg I\\nam\\na\\boyđể System.out.printlnin ra

I
am
a
boy

nhập mô tả hình ảnh ở đây


-1

bạn có thể sử dụng <br>thẻ trong chuỗi của mình để hiển thị trong các trang html


2
Luôn luôn là một ý tưởng tồi để nhúng đánh dấu vào đầu ra của bạn. Bạn không bao giờ biết công nghệ hiển thị mà người dùng của bạn đang sử dụng. Tốt nhất để giữ nó chung chung nhất có thể và sử dụng bộ lọc định dạng để hiển thị nếu cần.
TMN

Tôi nói nó chỉ hoạt động trong trang html, nó chỉ là một gợi ý cho những ai muốn hiển thị một văn bản đơn giản trong các trang web.
Mehdi Roostaeian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.