Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

So sánh chuỗi không phân biệt chữ hoa/chữ thường trong Java

Java cung cấp nhiều cách so sánh chuỗi, nhưng chỉ equalsIgnoreCase() mới so sánh nội dung bỏ qua chữ hoa/thường.

Các phương pháp so sánh phổ biến

1. compareTo() – So sánh theo thứ tự từ điển (phân biệt hoa/thường)

String s1 = "Hello";
String s2 = "hello";
int result = s1.compareTo(s2); // != 0 vì 'H' khác 'h'

2. Toán tử == – So sánh tham chiếu (KHÔNG so sánh nội dung)


String a = "hello";
String b = "hello";
System.out.println(a == b); // true do string interning
String c = new String("hello");
System.out.println(a == c); // false - khác đối tượng

3. equals() – So sánh nội dung (phân biệt hoa/thường)

"Hello".equals("hello"); // false

✅ Giải pháp: equalsIgnoreCase()

Phương thức này so sánh hai chuỗi bỏ qua chữ hoa/chữ thường:


import java.util.Scanner;

public class CaseInsensitiveCompare {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Nhập chuỗi 1: ");
        String str1 = sc.nextLine();
        System.out.print("Nhập chuỗi 2: ");
        String str2 = sc.nextLine();
        
        if (str1.equalsIgnoreCase(str2)) {
            System.out.println("Hai chuỗi giống nhau (bỏ qua hoa/thường)");
        } else {
            System.out.println("Hai chuỗi khác nhau");
        }
    }
}

Kết quả mẫu


Nhập chuỗi 1: Hello
Nhập chuỗi 2: hello
Hai chuỗi giống nhau (bỏ qua hoa/thường)

Lưu ý:equalsIgnoreCase() trả về false nếu đối số là null.