เมื่อคุณคิดถึง string คุณอาจเห็นแมวเล่นกับบอลขนสัตว์ เป็นจริงที่บอลหรือขนสัตว์คือ string แต่เมื่อโปรแกรมเมอร์ใช้คำว่า string พวกเขาหมายถึงสิ่งที่ต่างออกไป
ในการเขียนโปรแกรม string คือ sequence ของหนึ่งหรือหลาย characters ถึงข้อมูล text-based สำคัญต่อการโต้ตอบประจำวันของเรากับคอมพิวเตอร์ จะไม่เป็นไรที่ string เป็นส่วนสำคัญของการเขียนโปรแกรม
ในคู่มือนี้ เราจะอภิปรายวิธีสร้าง string วิธี concatenate string และวิธีจัดเก็บค่าของ string ในตัวแปร เราจะเดินทางผ่านตัวอย่างเล็กน้อยเพื่อช่วยทางด่านให้คุณ
การสร้าง Java String
String ใช้จัดเก็บข้อความใน Java ในขณะที่ data type char จัดเก็บ individual characters strings สามารถจัดเก็บ characters ได้เท่าที่คุณต้องการ Strings เป็น sequences ของ bytes
Strings ถูกกำหนดระหว่าง double quotes นี่แตกต่างจากภาษาเช่น Python หรือ JavaScript ซึ่งทั้งคู่ยอมรับ single และ double quotes นี่คือตัวอย่าง string ใน Java:
“This is an example string.”
คุณสามารถพิมพ์เนื้อหาของ string โดยใช้ฟังก์ชัน println():
System.out.println("This is an example string."); โค้ดของเราคืนค่า: This is an example string เราสร้าง string ใหม่ ตอนนี้ที่คุณรู้วิธี declare string เราสามารถพูดถึงวิธีทำงานกับพวกมันในโค้ดของคุณได้
81% ของผู้เข้าร่วมระบุว่ารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสงานทางเทคโนโลยีหลังจากเข้าร่วมบูทแคมป์ ได้รับการจับคู่กับบูทแคมป์วันนี้
นักศึกษาจบบูทแคมป์เฉลี่ยใช้เวลาน้อยกว่า 6 เดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มบูทแคมป์จนหางานแรก
String Concatenation
Concatenation คำยาวนิดหน่อย ความหมายค่อนข้างง่าย: มันหมายถึงการรวมสอง strings เพื่อสร้าง string ใหม่ คุณสามารถใช้ operator + (plus sign) เพื่อ concatenate สอง strings
มาพูดว่าเรามีสอง strings: William และ Carter String แรกคือ forename และ string ที่สองคือ surname เราสามารถรวมพวกมันโดยใช้ operator +:
String fullname = "William" + "Carter"; System.out.println(fullname);
โค้ดของเรา output: WilliamCarter รอ ไม่มี space ระหว่างสองคำนี้?
โดย default ไม่มี whitespace เพิ่มระหว่าง concatenated strings หากเราต้องการให้ space ปรากฏ เราจะต้องเพิ่มมันหลังชื่อ William:
String fullname = "William " + "Carter"; System.out.println(fullname);
เมื่อเรา run โปรแกรมของเรา นี่คือสิ่งที่คืน: William Carter
การคำนวณความยาวของ String
คุณคำนวณความยาวของ string อย่างไร? คำถามดีมาก โชคดีที่เราไม่ต้องเขียนฟังก์ชันซับซ้อนใดๆ เพื่อทำมัน
Java มี built-in function แล้วที่เราสามารถใช้คำนวณความยาวของ string: length() มันเป็นชื่อที่สะดวกสำหรับเมธอด!
เราจะสร้างโปรแกรมที่คำนวณความยาวของชื่อสองคนในชั้นประถมศึกษาปีที่ 4 สร้างไฟล์ Java ใหม่และ paste โค้ดต่อไปนี้เข้า main class ของคุณ:
String name1 = "William Carter"; String name2 = "Helena Ohara"; int name1length = name1.length() - 1; int name2length = name2.length() - 1; System.out.println(name1 + "'s name is " + name1length + " letters long."); System.out.println(name2 + "'s name is " + name2length + " letters long.");
มา run โค้ดของเรา:
William Carter's name is 13 letters long. Helena Ohara's name is 11 letters long.
เรา define สองตัวแปรที่จัดเก็บชื่อนักเรียนของเรา: name1 และ name2 เราใช้เมธอด length() คำนวณความยาวของ strings ทั้งสองนี้ เราลบ 1 จากความยาวของชื่อแต่ละอันเพื่อคำนึงถึง space กลาง
จากนั้น เราพิมพ์ข้อความแจ้งให้เรารู้ความยาวของแต่ละชื่อ
ค้นหา String ภายใน String
อาจมีเวลาที่คุณต้องการหา string ภายในอีก string นี่คือที่มาของเมธอด indexOf() เมธอดนี้คืนค่าตำแหน่งของ first occurrence ของ string ข้อความเฉพาะภายใน string
ก่อนที่เราจะอภิปรายว่ามันทำงานอย่างไร เราจะต้องพูดสั้นๆ เกี่ยวกับ index ใน Java strings ถูก indexed โดยใช้ index numbers นี่หมายความว่าทุก character ใน string ถูกกำหนดหมายเลขของตัวเอง ซึ่งเราสามารถใช้เข้าถึงแต่ละ item แยกกันได้
นี่คือการแบ่งส่วน index ภายใน string "William Carter":
| W | i | l | l | i | a | m | C | a | r | t | e | r | |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
สังเกตว่าทุก characters ใน string ของเราถูกกำหนด index number รวมถึง whitespaces นอกจากนี้ สังเกตว่าเราเริ่มนับจาก 0 นี่เป็นเพราะ strings indexed เริ่มที่ 0
มาพูดว่าเราต้องการหาว่า string Carter ปรากฏที่ไหนใน string นี้ เราสามารถทำได้โดยใช้เมธอด indexOf() เหมือนนี้:
String name = "William Carter"; int position = name.indexOf("Carter"); System.out.println("Carter appears starting at index value " + position); โค้ดของเราคืนค่า: Carter appears starting at index value 8 indexOf() คืนค่า index position ที่ character ปรากฏ
ตรวจสอบว่าสอง Strings เท่ากันหรือไม่
การเปรียบเทียบ strings เกิดขึ้นตลอดเวลาในการเขียนโปรแกรม คิดถึงเมื่อคุณป้อน password เข้า login form แอปพลิเคชันทำอะไร? มันเปรียบเทียบ password ที่คุณป้อนกับ password ที่แอปพลิเคชันจัดเก็บใน database ของมัน
มาพูดว่าเราต้องการเขียนโปรแกรมที่ตรวจสอบว่า password ของผู้ใช้ถูกต้องหรือไม่ เปิดไฟล์ Java ใหม่และ paste โค้ดต่อไปนี้เข้า main program ของคุณ:
String entered_password = "Test123"; String saved_password = "Test12345"; boolean compare_passwords = entered_password.equals(saved_password); System.out.println("Does the entered password match the saved password? " + compare_passwords); โค้ดของเราคืนค่า:
Does the entered password match the saved password? false
โปรแกรมของเราตรวจสอบว่าสอง strings ที่เราระบุ — entered_password และ saved_password เท่ากันหรือไม่ เราใช้เมธอด equals() ทำการตรวจสอบนี้ เมธอดนี้คืนค่า true หาก strings เท่ากัน มิฉะนั้น คืนค่า false
มาเปลี่ยนค่าของ entered_password ให้เท่ากับ saved_password:
String entered_password = "Test12345"; String saved_password = "Test12345"; ...
เมื่อเรา run โค้ดนี้ โปรแกรมของเราคืนค่า:
Does the entered password match the saved password? true
ทั้งสอง strings ที่เราระบุตรงกัน ซึ่งหมายความว่าเมธอด equals() ของเรา evaluate เป็น true
Special Characters
Strings ต้องเขียนภายใน double quotes นี่聽起來ไม่ใช่ big deal จนกว่าคุณจะต้องการรวม double quote ในโปรแกรมของคุณ นี่จะคืน error
วิธีแก้ error นี้คือใช้ backslash (\) character นี่จะเปลี่ยน character ใดๆ ที่ทันทีตาม string ให้เป็น special character พิจารณาตัวอย่างนี้:
String statement = "Your order for \"Chocolate Chip Cookie x2\" was processed.";
String นี้จะทำงานในโปรแกรมของเราเพราะเราระบุ backslash ก่อน double quotes ทุกตัวใน string ของเรา String นี้คืนค่า: Your order for Chocolate Chip Cookie x2 was processed
ตอนนี้เรามีปัญหาอีกอย่าง: ถ้าคุณต้องการใช้ backslash ใน string ของคุณ ทำไง? เพื่อทำเช่นนั้น คุณสามารถเขียน two backslashes วางติดกัน:
String order_reference = "Your order reference is 202\\303."
นี่คืน string: Your order reference is 202\303."
มี special characters อื่นๆ หลายตัวที่คุณสามารถใช้ใน Java หนึ่งใน useful ที่สุดที่คุณจะเจอคืออันที่เรียกว่า \n หรือ new line Character นี้สร้าง new line ใน string:
String order_reference = "Your order reference is: \n 202\\303."
String ของเราเท่ากับ:
Your order reference is:
202\303
String ถูกแยกขึ้นสองบรรทัดเพราะเราระบุ new line character หลังส่วน is: ของ string ของเรา
สรุป
Strings อนุญาตให้คุณทำงานกับ text-based data ในโปรแกรมของคุณ String สามารถจัดเก็บ characters ได้จำนวนไหนก็ได้ รวมถึงไม่มี characters เลย
ด้วย string methods เช่น indexOf() และ equals() คุณสามารถ manipulate เนื้อหาของ string ใน Java ตอนนี้คุณพร้อมที่จะเริ่มทำงานกับ strings ใน Java อย่างเชี่ยวชาญแล้ว!