ฉันมีสตริงเช่น
"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 บรรทัดใหม่จึงหมายถึงสิ่งที่เฉพาะเจาะจงสำหรับระบบ %nOS ไม่เชื่อเรื่องพระเจ้าเป็นแบบพกพา ย่อมาจาก\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);nlSeparatedString
แยกทางกัน.
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