บางอย่างผิดพลาด! บทความนี้เขียนขึ้นเพื่อทดสอบตำแหน่งงานในทีม JavaRush และเขียนไว้เป็นการบรรยายอย่างเต็มเปี่ยม ด้วยเหตุนี้ฉันจึงรับประกันคุณภาพและปริมาณของความรู้ที่เป็นประโยชน์ที่สะสมในโพสต์นี้ นอกจากข้อมูลเชิงปฏิบัติและเชิงทฤษฎีแล้ว บทความนี้ยังมีข้อเท็จจริงที่น่าสนใจที่คุณอาจไม่รู้ด้วยซ้ำ!
![การหลบหนีอักขระใน Java - 1]()
สวัสดีชาวโลก!
การหลบหนีตัวละครเป็นวิธีแก้ปัญหาทางเทคนิคที่น่าสนใจและจำเป็นมาก ความจำเป็นในการหลบหนีตัวละครมีบทบาทสำคัญในประวัติศาสตร์ของอุตสาหกรรมการเขียนโปรแกรมทั้งหมด ในบทความนี้ เราจะพูดถึงว่าการ Escape อักขระคืออะไร เหตุใดจึงต้อง Escape และวิธีการใช้ Escape อักขระใน Java บทความนี้จะยกตัวอย่างและข้อเท็จจริงที่น่าสนใจเกี่ยวกับหัวข้อการหลบหนีของตัวละคร สนุกกับการอ่าน! ข้อมูลทั้งหมดในระบบคอมพิวเตอร์จะแสดงในรูปแบบข้อความ ซึ่งในระดับล่างจะแสดงเป็นไบต์ เมื่อเราเขียนจดหมายหรือข้อความ เราจะพิมพ์ข้อความที่บุคคลจะเข้าใจได้ เมื่อเราเขียนโค้ดใน IDE เราจะพิมพ์ข้อความที่คอมไพเลอร์สามารถแยกวิเคราะห์ได้ ใน Java ข้อความสามารถแสดงเป็นประเภท
String
ที่มีข้อมูลแสดงด้วยอักขระควบคุม - เครื่องหมายคำพูดคู่
String str = "Hello World!";
พร้อมข้อความ “Hello World!” ไม่มีปัญหาเกิดขึ้น แต่จะเกิดอะไรขึ้นหากจำเป็นต้องเน้นข้อความเดียวกันในการพูดโดยตรง? เมื่อใช้กฎไวยากรณ์ จะเห็นได้ชัดว่าข้อความ “Hello World!” นอกเหนือจากอักขระควบคุมประเภท
String
จะต้องอยู่ในเครื่องหมายคำพูดโดยตรง
String str = "Java said, "Hello World!"";
ตัวเลือกนี้จะไม่ทำงานเพราะว่า
str
คอมไพเลอร์ก็จะไม่เข้าใจ ว่าการเริ่มต้นของตัวแปรสิ้นสุดลงที่จุดใด เพื่อแก้ปัญหานี้และปัญหาที่คล้ายกัน จึงถูกประดิษฐ์ขึ้น
เพื่อใช้อักขระหลีกนั่นคือ เปลี่ยน
อักขระควบคุม เป็นสิ่งที่ เรียกว่าลำดับการควบคุม หรือที่เรียกว่า
ลำดับหลีก ด้านล่างนี้คือรายการลำดับการหลีกเลี่ยง Java ที่ถูกต้องสำหรับใช้ในสตริง
\t
— อักขระแท็บ (ใน java - เทียบเท่ากับสี่ช่องว่าง)
\b
— อักขระส่งคืนในข้อความถอยหลังหนึ่งขั้นหรือลบอักขระหนึ่งตัวในบรรทัด (backspace)
\n
— สัญลักษณ์บรรทัดใหม่
\r
— สัญลักษณ์ส่งคืนรถ
\f
— ข้ามหน้าไปยังจุดเริ่มต้นของหน้าถัดไป
\'
— อักขระเครื่องหมายคำพูดเดี่ยว
\"
— อักขระเครื่องหมายคำพูดคู่;
\\
— อักขระแบ็กสแลช (
\
) ตอนนี้เรามาเน้นคำพูดโดยตรงในวลีของเราเพื่อให้คอมไพเลอร์สามารถแยกวิเคราะห์สิ่งที่เขียนได้อย่างง่ายดาย
String str = "Java said, \"Hello World!\"";
ดังนั้นข้อความที่เขียนจึงสามารถเข้าใจได้สำหรับทั้งคอมไพเลอร์และบุคคลหากเนื้อหาของตัวแปร
str
แสดงบนหน้าจอ เราพบว่าการหลบหนีของตัวละครคืออะไร และเหตุใดจึงจำเป็น และพวกเขาก็รอดพ้นจากเครื่องหมายคำพูดคู่ด้วย! เรามาดำเนินการแยกวิเคราะห์ลำดับการหลีกเลี่ยงที่เหลือกัน
อักขระแท็บในบรรทัดจะแสดงด้วยลำดับการหลีกเลี่ยง
\t
และคล้ายคลึงกับช่องว่างสี่ช่อง อย่างไรก็ตาม หากความยาวของสตริงที่ประกอบด้วยสี่ช่องว่างเท่ากับความยาวของอักขระสี่ตัว ความยาวของสตริงที่มีอักขระแท็บจะเท่ากับหนึ่ง อักขระแท็บมักใช้เพื่อสร้างตารางหรือ องค์ประกอบอินเทอร์เฟซ
แบบกราฟิกหลอกเนื่องจาก... สะดวกกว่าการเขียนช่องว่างสี่ช่อง ด้านล่างนี้เป็นตัวอย่างของอินเทอร์เฟซหลอกกราฟิก
![การหลบหนีอักขระใน Java - 2]()
ในบรรดาลำดับการหลีกเลี่ยงทั้งหมด สัญลักษณ์อาจเป็น
\b
สิ่งที่น่าสนใจที่สุด เพราะมันช่วยให้เราสามารถลบอักขระตัวสุดท้ายในบรรทัดเอาต์พุตได้ คล้ายกับถ้าเราลบมันโดยการกดปุ่ม
Backspace .
System.out.print("2 + 2 = 5");
System.out.print("\b");
System.out.print("4");
สัญลักษณ์
\n
มี
\r
ประวัติร่วมกัน - มาดูกัน คุณอาจเคยพบ อักขระตัวแบ่งบรรทัด
\n
มาก่อน ตัวอย่างเช่น หากวิธีการ
println()
ส่งออกข้อมูลเพื่อให้เอาต์พุตถัดไปอยู่บนบรรทัดใหม่ วิธีการนั้นจะ
print()
ไม่ทำการขึ้นบรรทัดใหม่หลังจากเอาต์พุต แต่ถ้าคุณเพิ่มอักขระที่ส่วนท้ายของเอาต์พุต
\n
ก็จะเป็นการขึ้นบรรทัดใหม่ จะดำเนินการ
System.out.print("Next output will be on a new line\n");
System.out.println("Next output will be on a new line");
อักขระขึ้นบรรทัดใหม่
\r
ช่วยให้เราสามารถคืนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดเอาต์พุตและแสดงข้อมูลใหม่ราวกับว่าไม่มีอะไรในบรรทัดนั้นมาก่อน
System.out.print("Text to be rewritten.");
System.out.print('\r');
System.out.print("New text.");
ในความเป็นจริง การคืนแคร่ย้อนกลับไปในสมัยที่มีการพิมพ์ข้อความบนเครื่องพิมพ์ดีด ในการป้อนบรรทัดจำเป็นต้องย้ายแคร่และลดคันโยกลง (ส่วนหนึ่งของกลไกเครื่องพิมพ์ดีด) หลังจากนั้นจึงป้อนบรรทัด หากไม่ลดคันโยกลง ก็จะสามารถพิมพ์ต่อในบรรทัดเดียวกันได้
\r
นี่คือสิ่งที่เราสังเกตเมื่อเราแสดงสัญลักษณ์ ในเรื่องนี้ เมื่อโปรแกรมเมอร์ต้องการแบ่งบรรทัด เขาจึงใช้ลำดับอักขระที่ส่วนท้ายของเอาต์พุตจนเป็น
\r\n
นิสัย เมื่อยุคของเครื่องพิมพ์ดีดสิ้นสุดลง มีโปรแกรมเมอร์รุ่นหนึ่งที่ยังคงใช้ลำดับนี้ แม้ว่าพวกเขาจะไม่เคยทำงานกับเครื่องพิมพ์ดีดมาก่อนก็ตาม พวกเขามักจะลืมไปว่าต้องลำดับใดในการดำเนินการตามลำดับที่กำหนด-
\r\n
หรือ
\n\r
จากนั้นคำทดสอบก็เข้ามาช่วยเหลือ
return
โดยที่ลำดับการแสดงสัญลักษณ์เหล่านี้มองเห็นได้ชัดเจน อย่างไรก็ตาม ในภายหลังเมื่อพัฒนาซอฟต์แวร์สำหรับ Windows เวอร์ชันแรก หลังจาก MS-DOS โปรแกรมเมอร์ถูกบังคับให้ใช้ลำดับ
\r\n
. ตอนนี้คุณไม่ต้องกังวลเกี่ยวกับเรื่องนี้แล้วใช้เพียงอักขระเพื่อแบ่ง
\n
บรรทัด
![การหลบหนีอักขระใน Java - 3]()
ย้อนเวลากลับไปอีกครั้งในช่วงยุค 80 ตอนนั้นเองที่สัญลักษณ์สำหรับหน้าไปข้างหน้า
\f
จนถึงจุดเริ่มต้นของหน้าถัดไปได้รับความนิยม ในเวลานั้น มีเครื่องพิมพ์แบบเรียงแถวขนาดใหญ่ ซึ่งจำเป็นต้องเขียนโค้ดโปรแกรมโดยระบุว่าเครื่องพิมพ์ควรพิมพ์อะไรและอย่างไร และเพื่อระบุว่าข้อความต้องเริ่มต้นจากหน้าใหม่จึงใช้
\f
สัญลักษณ์ ในยุคของเรา สัญลักษณ์นี้ได้สูญเสียความเกี่ยวข้องไปนานแล้ว และไม่น่าเป็นไปได้ที่คุณจะได้พบเห็นมันอีก ขนาดของเครื่องพิมพ์เชิงเส้นค่อนข้างน่าประทับใจ
![การหลบหนีอักขระใน Java - 4]()
ด้วยสัญลักษณ์
\’
และ
\\
ทุกอย่างเหมือนกับการหลีกเลี่ยงเครื่องหมายคำพูดคู่ มีตัวอย่างอยู่ที่ตอนต้นของบทความ คุณจะต้องหลีกเลี่ยงเครื่องหมายคำพูดเดี่ยว เพื่อเริ่มต้นประเภทถ่านด้วยเครื่องหมายคำพูดเดี่ยว
char ch = '\'';
อักขระหลีกเครื่องหมายแบ็กสแลชเพื่อระบุว่าอักขระต่อไปนี้จะไม่เป็นส่วนหนึ่งของลำดับการหลีก
System.out.println("\\n - line break escape sequence");
ในทางปฏิบัติ คุณมักจะต้องหลีกเลี่ยงเครื่องหมายแบ็กสแลชเมื่อทำงานกับเส้นทาง:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
ฉันเน้นย้ำว่าลำดับหลีกเหล่านี้ใช้ในสตริง (ตัวอักษรสตริง) เนื่องจาก ส่วนที่เหลือใช้เพื่ออธิบายนิพจน์ทั่วไปของคลาส
Pattern
และไม่เกี่ยวข้องกับหัวข้อของบทความนี้ คุณสามารถดูรายการลำดับการหลีกเลี่ยงทั้งหมดสำหรับคลาสได้ที่
นี่ Pattern
อย่างไรก็ตามเป็นที่น่าสังเกตว่าไม่สามารถจินตนาการถึงนิพจน์ทั่วไปในรูปแบบที่มีอยู่ในขณะนี้ได้โดยไม่ต้องใช้ Escape Sequence ไม่เพียงแต่ใน Java เท่านั้น แต่ยังรวมถึงภาษาโปรแกรมยอดนิยมอื่น ๆ เช่น PHP ด้วย ใน Java การหลบหนีอักขระยังใช้ในการจัดรูปแบบสตริงด้วย ตัวอย่างเช่น เมื่อระบุรูปแบบสตริงสำหรับการแสดงสัญลักษณ์เปอร์เซ็นต์ คุณต้องทำซ้ำสัญลักษณ์เปอร์เซ็นต์ -
%%
มิฉะนั้นเราจะได้รับข้อผิดพลาด และ IDE จะแจ้งให้คุณเพิ่มเปอร์เซ็นต์
System.out.printf("Milk fat percentage : %d%%", 10);
นี่เป็นการสรุปบทความ ฉันหวังว่าคุณจะได้เรียนรู้มากมายเกี่ยวกับการหลบหนีของตัวละครและวิธีนำไปปฏิบัติ การหลบหนีอักขระนั้นมีอยู่ในภาษาการเขียนโปรแกรมหลายภาษา ในจาวา เช่นเดียวกับภาษาซีอื่นๆ เทคโนโลยีนี้ถูกนำไปใช้เกือบจะเหมือนกัน ดังนั้นความรู้ที่คุณได้รับจากบทความนี้อาจมีประโยชน์ไม่เพียงแต่ใน java เท่านั้น ขอบคุณสำหรับความสนใจและขอให้โชคดีกับการเรียนของคุณ!
GO TO FULL VERSION