Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Java String:คู่มือสำหรับผู้เริ่มต้น

เมื่อนึกถึงเชือก คุณอาจเห็นแมวตัวหนึ่งกำลังเล่นอยู่กับเส้นด้าย เป็นความจริงที่ลูกบอลหรือเส้นด้ายเป็นเส้นเอ็น แต่เมื่อโปรแกรมเมอร์ใช้คำว่า สตริง มันหมายถึงสิ่งที่แตกต่างออกไป

ในการเขียนโปรแกรม สตริงคือลำดับของอักขระตั้งแต่หนึ่งตัวขึ้นไป เมื่อพิจารณาว่าข้อมูลแบบข้อความมีความสำคัญต่อการโต้ตอบกับคอมพิวเตอร์ทุกวัน จึงไม่แปลกใจเลยที่สตริงเป็นส่วนสำคัญของการเขียนโปรแกรม

ในคู่มือนี้ เราจะพูดถึงวิธีสร้างสตริง วิธีเชื่อมสตริง และวิธีจัดเก็บค่าของสตริงในตัวแปร เราจะอธิบายตัวอย่างบางส่วนเพื่อช่วยแนะนำคุณตลอดเส้นทาง

การสร้าง 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 อย่างผู้เชี่ยวชาญแล้ว!