ฉันมีสตริงเช่น
"I am a boy".
ฉันต้องการพิมพ์แบบนี้
"I
am
a
boy".
ใครสามารถช่วยฉัน?
ฉันมีสตริงเช่น
"I am a boy".
ฉันต้องการพิมพ์แบบนี้
"I
am
a
boy".
ใครสามารถช่วยฉัน?
คำตอบ:
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
คุณยังสามารถใช้System.lineSeparator()
:
String x = "Hello," + System.lineSeparator() + "there";
System.getProperty("line.separator")
.
String x = "Hello, %n there";
. เพิ่มช่องว่างรอบ ๆ%n
เพื่อประโยชน์ในการอ่าน
System.out.printf("I %n am %n a %n boy");
I
am
a
boy
ควรใช้%n
เป็นอักขระบรรทัดใหม่ที่เป็นอิสระจากระบบปฏิบัติการแทน\n
และง่ายกว่าการใช้System.lineSeparator()
เหตุใดจึงต้องใช้%n
เนื่องจากในแต่ละ OS บรรทัดใหม่หมายถึงชุดอักขระที่แตกต่างกัน
Unix and modern Mac's : LF (\n)
Windows : CR LF (\r\n)
Older Macintosh Systems : CR (\r)
LFเป็นตัวย่อของสายฟีดและCRเป็นตัวย่อของสายการบินกลับมา อักขระ Escape ถูกเขียนไว้ในวงเล็บ ดังนั้นในแต่ละ OS บรรทัดใหม่จึงหมายถึงสิ่งที่เฉพาะเจาะจงสำหรับระบบ %n
OS ไม่เชื่อเรื่องพระเจ้าเป็นแบบพกพา ย่อมาจาก\n
ระบบ Unix หรือ\r\n
ระบบ Windows เป็นต้น ดังนั้นอย่าใช้แทนการใช้งาน\n
%n
สามารถทำได้หลายวิธี ฉันกำลังพูดถึง 2 วิธีง่ายๆ
วิธีง่ายๆดังต่อไปนี้:
System.out.println("I\nam\na\nboy");
นอกจากนี้ยังสามารถทำได้ด้วยการเชื่อมต่อด้านล่าง:
System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");
ลอง:
System.out.println("I\nam\na\nboy");
ในการทำให้รหัสพกพาไปยังระบบใดก็ได้ฉันจะใช้:
public static String newline = System.getProperty("line.separator");
สิ่งนี้มีความสำคัญเนื่องจาก OS ที่แตกต่างกันใช้สัญลักษณ์ที่แตกต่างกันสำหรับ newline: Windows ใช้ "\ r \ n", Classic Mac ใช้ "\ r" ส่วน Mac และ Linux ใช้ "\ n"
ผู้แสดงความคิดเห็น - โปรดแก้ไขฉันหากฉันผิดในเรื่องนี้ ...
\n
ใช้สำหรับทำเส้นแยก
ตัวอย่าง:
System.out.print("I" +'\n'+ "am" +'\n'+ "boy");
ผลลัพธ์:
I
am
boy
หากคุณต้องการพิมพ์ขึ้นบรรทัดใหม่ในคอนโซลคุณสามารถใช้ ´\ n´สำหรับการขึ้นบรรทัดใหม่
หากคุณต้องการแบ่งข้อความในส่วนประกอบการแกว่งคุณสามารถใช้ html:
String s = "<html>first line<br />second line</html>";
หากคุณต้องการให้โค้ดของคุณไม่ระบุเฉพาะคุณควรใช้ println สำหรับแต่ละคำ
System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");
เนื่องจาก Windows ใช้ "\ r \ n" เป็นระบบ newline และ unixoid ใช้เพียง "\ n"
println ใช้สิ่งที่ถูกต้องเสมอ
println()
เพิ่มอักขระขึ้นบรรทัดใหม่ที่ส่วนท้ายของสตริง (ไม่ใช่จุดเริ่มต้น)
System.lineSeparator()
หรือSystem.getProperty("line.separator")
สามารถใช้เพื่อทำให้ระบบรหัสเป็นอิสระ
การ%n
ใช้ฟอร์แมตเตอร์เป็นString.format()
อย่างไร:
String s = String.format("I%nam%na%nboy");
ในฐานะที่เป็นคำตอบนี้กล่าวว่าที่มีอยู่จาก Java 1.5 และมีวิธีการSystem.getProperty("line.separator")
หรือSystem.lineSeparator()
และเช่นนี้ทั้งสองเป็นระบบปฏิบัติการที่เป็นอิสระ
การแบ่งบรรทัดที่ไม่ขึ้นกับแพลตฟอร์ม
finalString = "bandham" + System.lineSeparator() + "manikanta";
System.out.println(finalString);
เอาท์พุท:
bandham
manikanta
หมายเหตุ:
Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()
ตัวอย่างโปรแกรมฉบับเต็มพร้อมความสนุก:
เปิดเอกสารเปล่าใหม่และบันทึกเป็น %yourJavaDirectory%/iAmABoy/iAmABoy.java
เปิดเอกสารเปล่าใหม่และบันทึกเป็น"iAmABoy" คือชื่อคลาส
วางรหัสต่อไปนี้และอ่านมัน จำไว้ว่าฉันเป็นมือใหม่ดังนั้นฉันขอขอบคุณทุกคำติชม!
//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!");
}
}
ตอนนี้ใน terminal / cmd เรียกดู%yourJavaDirectory%/iAmABoy
และพิมพ์:
javac iAmABoy.java
java iAmABoy I am a boy
คุณสามารถแทนที่ args I am a boy
ด้วยอะไรก็ได้!
args
โดยตรงnlSeparated()
หรือทำnlSeparated()
สเกลาร์String
แทนอาร์เรย์ ตัวเลือกแรกน่าจะดีกว่า นอกจากนี้ยังพิมพ์ลายเซ็นของคุณกับแทนprintln
print
main
แทนที่มีเพียงfor (String arg : args) { nlSeparated(arg); }
ยอมรับรายชื่อs แล้ว สำหรับคำอธิบายที่ดีขึ้นโปรดดูที่นี่: stackoverflow.com/a/12534579/2988730nlSeparated(args);
nlSeparated
String
แยกทางกัน.
String string = "I am a boy";
for (String part : string.split(" ")) {
System.out.println(part);
}
System.out.println ( "ฉัน \ น้ำ \ na \ nboy");
การทำงานนี้จะให้อักขระเว้นวรรคหนึ่งตัวก่อนที่จะป้อนอักขระ
ฉันใช้รหัสนี้ 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);
}
}
ด้วยเทอร์มินัลฉันสามารถใช้ arg I\\nam\\na\\boy
เพื่อทำการSystem.out.println
พิมพ์
I
am
a
boy
คุณสามารถใช้<br>
แท็กในสตริงของคุณเพื่อแสดงในหน้า html