บางอย่างผิดพลาด! บทความนี้เขียนขึ้นเพื่อทดสอบตำแหน่งงานในทีม 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