String เป็นชนิดข้อมูลเก็บข้อความใน Java เมื่อทำงานกับ String มักต้องการเปรียบเทียบ 2 สตริงว่าเหมือนกันหรือไม่
นี่คือที่มาของเมธอด equals() และ equalsIgnoreCase() ของ String: equals() เช็คว่า 2 สตริงเท่ากันทุกประการ (case-sensitive) ส่วน equalsIgnoreCase() เปรียบเทียบโดย ไม่สนใจตัวพิมพ์เล็ก/ใหญ่
บทช่วยสอนนี้อธิบายการใช้งานทั้ง 2 เมธอด พร้อมตัวอย่าง จบแล้วคุณจะเปรียบเทียบ String ได้อย่างมืออาชีพ
String ใน Java
String เก็บข้อความ ประกอบด้วยตัวอักษร ตัวเลข สัญลักษณ์ และ whitespace ตัวอย่าง: ชื่อลูกค้าร้านตัดเสื้อ หรือที่อยู่ผู้จัดจำหน่าย
ใน Java String ประกาศเป็นลำดับตัวอักษรล้อมด้วย double quotes:
String favoriteCoffeeShop = "Central Perk";
String objects ใน Java เป็น immutable (ไม่เปลี่ยนแปลงได้) เมื่อสร้างแล้ว ต้องใช้ equals() เปรียบเทียบกับ String อื่น
Java String equals()
เมธอด equals() ใช้เปรียบเทียบออบเจ็กต์ เช็คว่าเนื้อหา 2 สตริงเท่ากันหรือไม่
รับพารามิเตอร์ 1 ตัว: สตริงที่ต้องการเปรียบเทียบ ไวยากรณ์:
stringName.equals(string2Name);
อธิบาย: stringName = สตริงต้นทาง, equals() = เมธอดเปรียบเทียบ, string2Name = สตริงเป้าหมาย
คืนค่า boolean: true = เท่ากัน, false = ไม่เท่ากัน equals() เป็น case-sensitive ถ้าตัวอักษรเหมือนกันแต่ case ต่างกัน -> คืน false
ตัวอย่าง equals()
โรงแรมโปรแกรมเช็คอิน ลูกค้าให้ชื่อและ booking reference ระบบเปรียบเทียบกับข้อมูลในระบบ
class Main {
public static void main(String args[]) {
String onFileBookingReference = "#ST2920198";
String customerGivenBookingReference = "#ST2920198";
boolean areEqual = onFileBookingReference.equals(customerGivenBookingReference);
if (areEqual == true) {
System.out.println("This booking is confirmed.");
} else {
System.out.println("The booking reference provided does not match the one on-file.");
}
}
}
ผลลัพธ์: This booking is confirmed.
ขั้นตอน: 1) ประกาศ onFileBookingReference 2) ประกาศ customerGivenBookingReference 3) ใช้ equals() เปรียบเทียบ เก็บใน areEqual 4) if เช็ค areEqual true -> พิมพ์ confirmed, false -> พิมพ์ไม่ตรง
Java String equalsIgnoreCase()
เมธอด equalsIgnoreCase() เปรียบเทียบ 2 สตริง ไม่สนใจ case ไวยากรณ์เหมือน equals():
stringName.equalsIgnoreCase(string2Name);
ตัวอย่าง equalsIgnoreCase()
โปรแกรมเช็คชื่อลูกค้ากับ booking reference ต้องไม่สนใจ case เพื่อไม่ให้พิมพ์ผิด case ทำให้ booking หาย
class Main {
public static void main(String args[]) {
String onFileName = "Gregory Lamont";
String customerName = "gregory lamont";
boolean areEqual = onFileName.equalsIgnoreCase(customerName);
if (areEqual == true) {
System.out.println("This booking is confirmed.");
} else {
System.out.println("The customer name provided does not match the one on-file.");
}
}
}
ผลลัพธ์: This booking is confirmed.
ข้อมูลในระบบ: "Gregory Lamont" แต่ clerk พิมพ์ "gregory lamont" ถ้าใช้ equals() จะ false เพราะ case ต่างกัน แต่ equalsIgnoreCase() -> true
สรุป
equals(): เช็ค 2 สตริงเท่ากันทุกประการ (case-sensitive)equalsIgnoreCase(): เช็ค 2 สตริงเท่ากัน ไม่สนใจ case
บทช่วยสอนนี้อธิบายการใช้งานทั้ง 2 เมธอด พร้อมตัวอย่าง ตอนนี้คุณพร้อมเปรียบเทียบ String ใน Java ด้วย equals() และ equalsIgnoreCase() อย่างมืออาชีพแล้ว!