ฉันจะรับการขึ้นบรรทัดใหม่ขึ้นอยู่กับแพลตฟอร์มใน Java ได้อย่างไร ฉันไม่สามารถใช้งานได้"\n"
ทุกที่
ฉันจะรับการขึ้นบรรทัดใหม่ขึ้นอยู่กับแพลตฟอร์มใน Java ได้อย่างไร ฉันไม่สามารถใช้งานได้"\n"
ทุกที่
คำตอบ:
นอกเหนือจากคุณสมบัติ line.separator หากคุณใช้ java 1.5 ขึ้นไปและString.format (หรือวิธีการจัดรูปแบบอื่น ๆ) คุณสามารถใช้งานได้%n
เช่นเดียวกับใน
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY%n", c);
//Note `%n` at end of line ^^
String s2 = String.format("Use %%n as a platform independent newline.%n");
// %% becomes % ^^
// and `%n` becomes newline ^^
ดูJava 1.8 API สำหรับฟอร์แมตเตอร์สำหรับรายละเอียดเพิ่มเติม
%
จากผู้ใช้ป้อน!
String.format(s + "%n")
String.format("%s%n", s)
มันมีความเสี่ยงเสมอที่จะเกี่ยวข้องกับการป้อนข้อมูลของผู้ใช้เป็นเนื้อหาของรูปแบบ (ในลักษณะเดียวกับeval()
)
Java 7 ตอนนี้มีSystem.lineSeparator()
วิธีการ
lineSeperator(int)
ซึ่งจะคืนค่าจำนวนบรรทัดของ seperators เนื่องจากฉันมักจะพบว่าตัวเองใช้ 2 พร้อมกัน
String.join("", Collections.nCopies(5, System.lineSeparator()))
System.lineSeparator().repeat(5)
คุณสามารถใช้ได้
System.getProperty("line.separator");
เพื่อรับตัวแยกบรรทัด
System.lineSeparator()
รายละเอียดJava 7 ดังนั้นนี่คือคำตอบที่ชัดเจนสำหรับคำถามนี้
หากคุณกำลังพยายามเขียนบรรทัดใหม่ไปยังไฟล์คุณสามารถใช้เมธอดnewLine ()ของ BufferedWriter
เป็นไปได้เช่นกัน: String.format("%n")
.
หรือString.format("%n").intern()
เพื่อบันทึกบางไบต์
\r\n
คอมมอน-langห้องสมุดมีข้อมูลคงที่เรียกว่าใช้ได้SystemUtils.LINE_SEPARATOR
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
ตัวอย่างด้านบนจะมีสองสตริงคั่นด้วยบรรทัดใหม่โดยไม่คำนึงถึงแพลตฟอร์ม
หากคุณกำลังเขียนไปยังไฟล์โดยใช้BufferedWriter
อินสแตนซ์ให้ใช้newLine()
วิธีการของอินสแตนซ์นั้น เป็นวิธีที่ไม่ขึ้นกับแพลตฟอร์มในการเขียนบรรทัดใหม่ในไฟล์
หลีกเลี่ยงการต่อท้ายสตริงโดยใช้ String + String ฯลฯ ใช้ StringBuilder แทน
String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );
string + string
"