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

เมธอด equals() และ equalsIgnoreCase() ของ String ใน Java

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() อย่างมืออาชีพแล้ว!