เมื่อนึกถึงเชือก คุณอาจเห็นแมวตัวหนึ่งกำลังเล่นอยู่กับเส้นด้าย เป็นความจริงที่ลูกบอลหรือเส้นด้ายเป็นเส้นเอ็น แต่เมื่อโปรแกรมเมอร์ใช้คำว่า สตริง มันหมายถึงสิ่งที่แตกต่างออกไป
ในการเขียนโปรแกรม สตริงคือลำดับของอักขระตั้งแต่หนึ่งตัวขึ้นไป เมื่อพิจารณาว่าข้อมูลแบบข้อความมีความสำคัญต่อการโต้ตอบกับคอมพิวเตอร์ทุกวัน จึงไม่แปลกใจเลยที่สตริงเป็นส่วนสำคัญของการเขียนโปรแกรม
ในคู่มือนี้ เราจะพูดถึงวิธีสร้างสตริง วิธีเชื่อมสตริง และวิธีจัดเก็บค่าของสตริงในตัวแปร เราจะอธิบายตัวอย่างบางส่วนเพื่อช่วยแนะนำคุณตลอดเส้นทาง
การสร้าง Java String
สตริงใช้เพื่อเก็บข้อความใน Java ในขณะที่ char
ชนิดข้อมูลเก็บอักขระแต่ละตัว สตริงสามารถเก็บอักขระได้มากเท่าที่คุณต้องการ สตริงคือลำดับของไบต์
สตริงถูกกำหนดระหว่างเครื่องหมายคำพูดคู่ ซึ่งไม่เหมือนกับภาษาอย่าง Python หรือ JavaScript ซึ่งทั้งคู่ยอมรับทั้งเครื่องหมายคำพูดเดี่ยวและคู่ นี่คือตัวอย่างของสตริงใน Java:
“This is an example string.”
คุณสามารถพิมพ์เนื้อหาของสตริงโดยใช้ println()
การทำงาน:
System.out.println("นี่คือสตริงตัวอย่าง");
รหัสของเราส่งคืน:This is an example string
. เราได้สร้างสตริงใหม่ เมื่อคุณทราบวิธีการประกาศสตริงแล้ว เราสามารถพูดคุยเกี่ยวกับวิธีทำงานกับสตริงเหล่านี้ได้ในโค้ดของคุณ
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
การต่อสตริง
การต่อกันช่างเป็นคำที่ยาวมาก คำจำกัดความนั้นค่อนข้างง่าย:หมายถึงการรวมสองสตริงเข้าด้วยกันเพื่อสร้างสตริงใหม่ คุณสามารถใช้ +
โอเปอเรเตอร์ (เครื่องหมายบวก) เพื่อเชื่อมสองสตริงเข้าด้วยกัน
สมมติว่าเรามีสองสาย:วิลเลียมและคาร์เตอร์ สตริงแรกเป็นชื่อและสตริงที่สองเป็นนามสกุล เราสามารถรวมเข้าด้วยกันโดยใช้ +
โอเปอเรเตอร์:
String fullname ="William" + "Carter";System.out.println(fullname);
รหัสของเราส่งออก:WilliamCarter
. เดี๋ยวนะ เกิดอะไรขึ้น? ทำไมไม่มีช่องว่างระหว่างคำสองคำนี้?
โดยค่าเริ่มต้น จะไม่มีช่องว่างเพิ่มระหว่างสตริงที่ต่อกัน หากเราต้องการเว้นวรรค ให้ใส่หลังชื่อ William
:
String fullname ="William " + "Carter";System.out.println(fullname);
เมื่อเรารันโปรแกรม ค่านี้จะถูกส่งกลับ:William Carter
.
การคำนวณความยาวของสตริง
คุณคำนวณความยาวของสตริงได้อย่างไร? เป็นคำถามที่ดี โชคดีสำหรับเรา เราไม่จำเป็นต้องเขียนฟังก์ชันที่ซับซ้อนใดๆ
Java มีฟังก์ชันในตัวที่เราสามารถใช้คำนวณความยาวของสตริงได้:length()
. เป็นชื่อที่สะดวกสำหรับวิธีการ!
เราจะสร้างโปรแกรมที่คำนวณความยาวของชื่อคนสองคนในชั้นประถมศึกษาปีที่ 4 สร้างไฟล์ Java ใหม่และวางโค้ดต่อไปนี้ในคลาสหลักของคุณ:
String name1 ="William Carter";String name2 ="Helena Ohara";int name1length =name1.length() - 1;int name2length =name2.length() - 1;System.out.println(name1 + ") ชื่อของคือ " + name1length + " letters long.");System.out.println(name2 + "'s name is " + name2length + " letters long.");
เรียกใช้รหัสของเรา:
ชื่อ William Carter ยาว 13 ตัวอักษร ชื่อ Helena Ohara ยาว 11 ตัวอักษร
เราได้กำหนดตัวแปรไว้ 2 ตัวซึ่งเก็บชื่อนักเรียนของเรา:name1 และ name2 จากนั้นเราก็ใช้ length()
วิธีการคำนวณความยาวของแต่ละสตริงเหล่านี้ เราลบ 1 จากความยาวแต่ละชื่อเพื่อคำนวณช่องว่างตรงกลาง
จากนั้นเราพิมพ์ข้อความแจ้งความยาวของแต่ละชื่อ
ค้นหาสตริงภายในสตริง
อาจมีบางครั้งที่คุณต้องการค้นหาสตริงภายในสตริงอื่น นั่นคือสิ่งที่ indexOf()
วิธีการมาในสะดวก เมธอดนี้ส่งคืนตำแหน่งการเกิดขึ้นครั้งแรกของสตริงข้อความเฉพาะภายในสตริง
ก่อนที่เราจะพูดถึงวิธีการทำงาน เราจะต้องพูดสั้นๆ เกี่ยวกับ index
. ใน Java สตริงจะถูกสร้างดัชนีโดยใช้หมายเลขดัชนี ซึ่งหมายความว่าทุกอักขระในสตริงถูกกำหนดหมายเลขของตัวเอง ซึ่งเราสามารถใช้เพื่อเข้าถึงแต่ละรายการแยกกัน
นี่คือรายละเอียดของดัชนีภายในสตริง “William Carter”:
W | ผม | ล | ล | ผม | ก | ม | | ค | ก | ร | ท | จ | ร |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
ขอให้สังเกตว่าอักขระทั้งหมดในสตริงของเราถูกกำหนดหมายเลขดัชนี รวมทั้งช่องว่าง นอกจากนี้ ให้สังเกตว่าเราเริ่มนับจาก 0 อย่างไร เนื่องจากสตริงมีการจัดทำดัชนีโดยเริ่มจาก 0
สมมติว่าเราต้องการหาว่าสตริง Carter
. อยู่ตรงไหน ปรากฏในสตริงนี้ เราสามารถทำได้โดยใช้ indexOf()
วิธีการเช่นนี้:
String name ="William Carter";int position =name.indexOf("Carter");System.out.println("คาร์เตอร์ปรากฏขึ้นโดยเริ่มจากค่าดัชนี " + ตำแหน่ง);
รหัสของเราส่งคืน:คาร์เตอร์ปรากฏขึ้นโดยเริ่มต้นที่ค่าดัชนี 8 indexOf()
ส่งกลับตำแหน่งดัชนีที่อักขระปรากฏขึ้น
ตรวจสอบว่าสองสตริงเท่ากันหรือไม่
การเปรียบเทียบสตริงเกิดขึ้นตลอดเวลาในการเขียนโปรแกรม คิดถึงเมื่อคุณป้อนรหัสผ่านลงในแบบฟอร์มการเข้าสู่ระบบ แอปพลิเคชั่นทำอะไร? โดยจะเปรียบเทียบรหัสผ่านที่คุณป้อนกับรหัสผ่านที่แอปพลิเคชันจัดเก็บไว้ในฐานข้อมูล
สมมติว่าเราต้องการเขียนโปรแกรมที่ตรวจสอบว่ารหัสผ่านของผู้ใช้ถูกต้องหรือไม่ เปิดไฟล์ Java ใหม่และวางโค้ดต่อไปนี้ลงในโปรแกรมหลักของคุณ:
String enter_password ="Test123";String Saved_password ="Test12345";boolean comparison_passwords =enter_password.equals(saved_password);System.out.println("รหัสผ่านที่ป้อนตรงกับรหัสผ่านที่บันทึกไว้หรือไม่ " + Compare_passwords);ก่อน>รหัสของเราส่งคืน:
รหัสผ่านที่ป้อนตรงกับรหัสผ่านที่บันทึกไว้หรือไม่ เท็จ
โปรแกรมของเราจะตรวจสอบเพื่อดูว่าเราระบุสองสตริงหรือไม่ –
entered_password
และsaved_password
มีค่าเท่ากัน เราใช้equals()
วิธีดำเนินการตรวจสอบนี้ เมธอดนี้คืนค่า จริง หากสตริงมีค่าเท่ากัน มิฉะนั้นจะส่งกลับค่าเท็จ
มาเปลี่ยนค่าของ
entered_password
ให้เท่ากับsaved_password
:
สตริงที่ป้อน_รหัสผ่าน ="Test12345";สตริงที่บันทึกไว้_รหัสผ่าน ="Test12345";...เมื่อเรารันโค้ดนี้ โปรแกรมของเราจะส่งคืน:
รหัสผ่านที่ป้อนตรงกับรหัสผ่านที่บันทึกไว้หรือไม่ จริง
สตริงทั้งสองที่เราระบุตรงกัน ซึ่งหมายความว่า
equals()
. ของเรา วิธีการประเมินเป็นจริงตัวละครพิเศษ
สตริงต้องเขียนด้วยเครื่องหมายคำพูดคู่ ดูเหมือนไม่ใช่เรื่องใหญ่จนกว่าคุณจะต้องการใส่เครื่องหมายคำพูดคู่ในโปรแกรมของคุณ สิ่งนี้จะส่งคืนข้อผิดพลาด
วิธีแก้ไขข้อผิดพลาดนี้คือการใช้อักขระแบ็กสแลช (\) การดำเนินการนี้จะเปลี่ยนอักขระใดๆ ที่ตามหลังสตริงเป็นอักขระพิเศษทันที พิจารณาตัวอย่างนี้:
คำสั่งสตริง ="คำสั่งซื้อของคุณสำหรับ \"Chocolate Chip Cookie x2\" ได้รับการประมวลผลแล้ว";สตริงนี้จะทำงานในโปรแกรมของเรา เนื่องจากเราได้ระบุแบ็กสแลชก่อนเครื่องหมายอัญประกาศคู่แต่ละรายการในสตริงของเรา สตริงนี้ส่งคืน:คำสั่งซื้อของคุณสำหรับคุกกี้ช็อกโกแลตชิป x2 ได้รับการประมวลผลแล้ว
ตอนนี้เรามีปัญหาอื่นแล้ว ถ้าคุณต้องการใช้แบ็กสแลชในสตริงของคุณล่ะ ในการดำเนินการดังกล่าว คุณสามารถเขียนแบ็กสแลชสองอันเคียงข้างกัน:
String order_reference ="การอ้างอิงคำสั่งซื้อของคุณคือ 202\\303"ส่งคืนสตริง:
Your order reference is 202\303."
มีอักขระพิเศษอื่นๆ อีกจำนวนหนึ่งที่คุณสามารถใช้ได้ใน Java หนึ่งในประโยชน์มากที่สุดที่คุณจะพบคือ \n หรือขึ้นบรรทัดใหม่ อักขระนี้สร้างบรรทัดใหม่ในสตริง:
String order_reference ="การอ้างอิงคำสั่งซื้อของคุณคือ:\n 202\\303"สตริงของเราเท่ากับ:
การอ้างอิงคำสั่งซื้อของคุณคือ:
202\303
สตริงถูกแบ่งออกเป็นสองบรรทัดเนื่องจากเราระบุอักขระขึ้นบรรทัดใหม่หลังจาก
is:
ส่วนหนึ่งของสตริงของเรา
บทสรุป
สตริงช่วยให้คุณทำงานกับข้อมูลแบบข้อความในโปรแกรมของคุณได้ สตริงสามารถมีอักขระได้จำนวนเท่าใดก็ได้ รวมทั้งไม่มีอักขระเลย
การใช้เมธอดสตริง เช่น
indexOf()
และequals()
คุณสามารถจัดการเนื้อหาของสตริงใน Java ตอนนี้คุณพร้อมที่จะเริ่มทำงานกับสตริงใน Java อย่างผู้เชี่ยวชาญแล้ว!