มีค่าคงที่ Newline ที่กำหนดใน Java เช่น Environment.Newline ใน C # หรือไม่


199

ใน C # มีสภาพแวดล้อมของคุณสมบัติสแตติกบรรทัดใหม่ที่เปลี่ยนแปลงขึ้นอยู่กับแพลตฟอร์มที่ทำงานอยู่

มีอะไรที่คล้ายกันใน Java?


2
Techniczly คุณควรถาม: วิธีการที่ไม่ Java แทนคุณสมบัติ newLine ที่ C # ดำเนินการเป็น Environment.NewLine เมื่อมันได้สร้าง
ปีเตอร์

5
ตอนนี้ที่ฉันอ่านคำแถลงของฉันอีกครั้งฉันก็สงสัยว่าทำไมตัวฉันเองฉันก็สงสัยว่าฉันกำลังคิดอะไรอยู่
Peter

คำตอบ:


280

ในฐานะของ Java 7 (และ Android API ระดับ 19):

System.lineSeparator()

เอกสารประกอบ: Java Platform SE 7


สำหรับ Java เวอร์ชันเก่าให้ใช้:

System.getProperty("line.separator");

ดูhttps://java.sun.com/docs/books/tutorial/essential/environment/sysprop.htmlสำหรับคุณสมบัติอื่น ๆ


5
ใน Android การโทรต้องใช้ API 19
Hamzeh Soboh

88

ในฐานะของ Java 7:

System.lineSeparator()

Java API: System.lineSeparator

ส่งคืนสตริงตัวคั่นบรรทัดที่ขึ้นอยู่กับระบบ มันจะส่งกลับค่าเดิมเสมอ - ค่าเริ่มต้นของ line property separator บนระบบ UNIX จะส่งคืน "\ n"; บนระบบ Microsoft Windows จะส่งคืน "\ r \ n"


60

โปรดทราบว่าคุณสมบัตินี้ไม่มีประโยชน์อย่างที่หลายคนคิดว่าเป็น ยกตัวอย่างเช่นแอปของคุณกำลังทำงานบนเครื่อง Windows ไม่ได้แปลว่าไฟล์ที่กำลังอ่านจะใช้ตัวแยกบรรทัดสไตล์ Windows หน้าเว็บหลายแห่งมีการผสมผสานของ "\ n" และ "\ r \ n" โดยได้รับการปูด้วยกันจากแหล่งที่แตกต่างกัน เมื่อคุณอ่านข้อความเป็นชุดของบรรทัดแบบลอจิคัลคุณควรมองหารูปแบบตัวคั่นบรรทัดหลักทั้งสาม: Windows ("\ r \ n"), Unix / Linux / OSX ("\ n") และ Mac OS ล่วงหน้า ("\ r")

เมื่อคุณเขียนข้อความคุณควรกังวลกับการใช้ไฟล์มากกว่าแพลตฟอร์มที่คุณใช้งาน ตัวอย่างเช่นหากคุณคาดหวังให้ผู้คนอ่านไฟล์ใน Windows Notepad คุณควรใช้ "\ r \ n" เพราะมันรู้จักตัวคั่นประเภทเดียวเท่านั้น


Mac pre-OSX ("\ r") ยังใช้งานได้จริงหรือไม่? หรือเป็นความจริงที่จะบอกว่าสามารถ "ลืม" ได้อย่างปลอดภัย?
Pacerier

6
ไม่ว่าเครื่องของคุณจะยังใช้งานอยู่หรือไม่คุณต้องสมมติว่ายังมีเอกสารที่เขียนบน Mac OS รุ่นก่อน OSX ฉันรู้ว่ามันดึงดูดให้สั้นลง(?:\r?\n|\r)ไป(?:\r?n)แต่ไม่มีผมไม่คิดว่ามันปลอดภัย ฉันชอบ(?:\r\n|[\r\n])อยู่ดี ฉันรู้ว่ามันเป็นตัวละครมากกว่า แต่มันก็ดูดีกว่า : D และหากคุณไม่สนใจว่าตัวแบ่งบรรทัดที่คุณใช้อยู่นั้น[\r\n]+ทำงานได้ตามปกติ
Alan Moore
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.