การเพิ่มอักขระขึ้นบรรทัดใหม่ในสตริงใน Java

1. ภาพรวม

การจัดรูปแบบสตริงและการสร้างเอาต์พุตข้อความมักเกิดขึ้นระหว่างการเขียนโปรแกรม ในหลาย ๆ กรณีจำเป็นต้องเพิ่มบรรทัดใหม่ในสตริงเพื่อจัดรูปแบบผลลัพธ์

มาดูวิธีใช้อักขระขึ้นบรรทัดใหม่

2. การเพิ่มอักขระขึ้นบรรทัดใหม่ในสตริง

ระบบปฏิบัติการมีอักขระพิเศษแสดงถึงการเริ่มต้นบรรทัดใหม่ ยกตัวอย่างเช่นใน Linux บรรทัดใหม่จะเขียนแทนด้วย“ \ n” ,เรียกว่าฟีดสาย ใน Windows บรรทัดใหม่จะเขียนแทนการใช้“ \ r \ n”บางครั้งเรียกว่ากลับบินและสายฟีดหรือCRLF

การเพิ่มบรรทัดใหม่ใน Java ทำได้ง่ายๆเพียงแค่ใส่“ \ n” ,“ \ r”หรือ“ \ r \ n”ที่ท้ายสตริงของเรา

2.1. การใช้ CRLF Line-Breaks

สำหรับตัวอย่างนี้เราต้องการสร้างย่อหน้าโดยใช้ข้อความสองบรรทัด โดยเฉพาะที่เราต้องการline2จะปรากฏเป็นเส้นใหม่หลังจากที่บรรทัดที่ 1

สำหรับระบบปฏิบัติการที่ใช้ Unix / Linux / Mac ใหม่เราสามารถใช้“ \ n”:

String line1 = "Humpty Dumpty sat on a wall."; String line2 = "Humpty Dumpty had a great fall."; String rhyme = line1 + "\n" + line2;

หากเราใช้ระบบปฏิบัติการที่ใช้ Windows เราสามารถใช้“ \ r \ n”:

rhyme = line1 + "\r\n" + line2;

สำหรับระบบปฏิบัติการ Mac รุ่นเก่าเราสามารถใช้“ \ r”:

rhyme = line1 + "\r" + line2;

เราได้สาธิตวิธีการเพิ่มบรรทัดใหม่สามวิธี แต่น่าเสียดายที่พวกเขาขึ้นอยู่กับแพลตฟอร์ม

2.2. การใช้ตัวแยกบรรทัดอิสระของแพลตฟอร์ม

เราสามารถใช้ค่าคงที่ที่ระบบกำหนดเมื่อเราต้องการให้โค้ดของเราเป็นอิสระจากแพลตฟอร์ม

ตัวอย่างเช่นการใช้System.lineSeparator ()เพื่อให้ตัวคั่นบรรทัด:

rhyme = line1 + System.lineSeparator() + line2;

หรือเราสามารถใช้System.getProperty (“ line.separator”) :

rhyme = line1 + System.getProperty("line.separator") + line2;

2.3. การใช้อักขระ Newline อิสระของแพลตฟอร์ม

แม้ว่าตัวคั่นบรรทัดจะให้ความเป็นอิสระของแพลตฟอร์ม แต่ก็บังคับให้เราเชื่อมสตริงของเราเข้าด้วยกัน

หากเรากำลังใช้บางอย่างเช่นSystem.out.printfหรือString.format อักขระบรรทัดใหม่ที่เป็นอิสระจากแพลตฟอร์ม% nสามารถใช้ได้โดยตรงภายในสตริง :

rhyme = "Humpty Dumpty sat on a wall.%nHumpty Dumpty had a great fall.";

สิ่งนี้เหมือนกับการรวมSystem.lineSeparator ()ภายในสตริงของเรา แต่เราไม่จำเป็นต้องแบ่งสตริงออกเป็นหลายส่วน

3. การเพิ่มอักขระขึ้นบรรทัดใหม่ในหน้า HTML

สมมติว่าเรากำลังสร้างสตริงที่เป็นส่วนหนึ่งของเพจ HTML ในกรณีนี้เราสามารถเพิ่มแท็กตัวแบ่ง HTML

เรายังสามารถใช้อักขระ Unicode “ & # 13;” (Carriage Return) และ“ & # 10;” (ฟีดบรรทัด) แม้ว่าอักขระเหล่านี้จะทำงานได้ แต่ก็ไม่ได้ทำงานอย่างที่เราคาดหวังในทุกแพลตฟอร์ม แทนที่จะใช้จะดีกว่า

นอกจากนี้เราสามารถใช้“ \ n”ในองค์ประกอบ HTML บางส่วนเพื่อแบ่งบรรทัดได้

โดยรวมแล้วนี่คือสามวิธีในการทำลายเส้นใน HTML เราสามารถตัดสินใจได้ว่าจะใช้อันไหนขึ้นอยู่กับแท็ก HTML ที่เราใช้อยู่

3.1. HTML Break Tag

เราสามารถใช้ HTML break tag

rhyme = line1 + "

" + line2;

แท็กสำหรับการแตกบรรทัดทำงานได้ในองค์ประกอบ HTML เกือบทั้งหมดเช่น ,

,

,ฯลฯ แต่ทราบว่ามันไม่ได้ทำงานใน แท็ก

3.2. ตัวละครขึ้นบรรทัดใหม่

เราสามารถใช้'\ n'เพื่อแบ่งบรรทัดหากมีข้อความอยู่ในนั้น

 หรือ  แท็ก:

rhyme = line1 + "\n" + line2;

3.3. อักขระ Unicode

สุดท้ายเราสามารถใช้อักขระ Unicode “ & # 13;” (Carriage Return) และ“ & # 10;” (Line Feed) เพื่อแบ่งบรรทัด ตัวอย่างเช่นในไฟล์ tag เราสามารถใช้อย่างใดอย่างหนึ่งต่อไปนี้:

rhyme = line1 + " " + line2; rhyme = line1 + " " + line2; 

สำหรับ

 แท็กทั้งสองบรรทัดด้านล่างจะใช้งานได้:

rhyme = line1 + " " + line2; rhyme = line1 + " " + line2; 

4. ความแตกต่างระหว่าง\ nและ\ r

\ r และ\ nเป็นอักขระที่แสดงด้วยค่า ASCII ที่ 13 (CR) และ 10 (LF) ตามลำดับ พวกเขาทั้งสองเป็นตัวแทนของการหยุดพักระหว่างสองเส้น , แต่ระบบปฏิบัติการใช้พวกเขาต่างกัน

On Windows, a sequence of two characters is used to start a new line, CR immediately followed by LF. Conversely, on Unix-like systems, only LF is used.

When writing Java applications, we must pay attention to the line break characters we use because the applications will behave differently depending on the operating system they will run on.

The safest and most cross-compatible option is to use System.lineSeparator(). This way, we won't have to take the operating system into account.

5. Conclusion

In this article, we discussed how to add newline characters to a string in Java.

We also saw how to write platform independent code for a new line using System.lineSeparator() and System.getProperty(“line.separator”).

Finally, we wrapped up with how to add a new line in case we are generating an HTML page.

The full implementation of this article can be found over on GitHub.