Nội dung chính
So sánh chuỗi trong java
Chúng ta có thể so sánh chuỗi trong java trên cơ sở nội dung và tham chiếu của nó.
Nó được sử dụng trong xác thực (bởi phương thức equals()), sắp xếp (theo phương thức compareTo()), so sánh tham chiếu(với toán tử ==), vv
Có ba cách để so sánh chuỗi trong java:
- Sử dụng phương thức equals()
- Sử dụng toán tử ==
- Sử dụng phương thức compareTo()
1) So sánh chuỗi bằng phương thức equals()
Phương thức equals() được sử dụng để so sánh nội dung của 2 chuỗi. Lớp String cung cấp 2 phương thức equals():
- public boolean equals(Object another): so sánh 2 chuỗi có phân biệt chữ hoa, chữ thường.
- public boolean equalsIgnoreCase(String another): so sánh 2 chuỗi không phân biệt chữ hoa, chữ thường.
Ví dụ 1:
public class Teststringcomparison1 { public static void main(String args[]) { String s1 = "Hello"; String s2 = "Hello"; String s3 = new String("Hello"); String s4 = "Hallo"; System.out.println(s1.equals(s2));//true System.out.println(s1.equals(s3));//true System.out.println(s1.equals(s4));//false } }
Output:
true true false
Ví dụ 2:
public class Teststringcomparison2 { public static void main(String args[]) { String s1 = "Hello"; String s2 = "HELLO"; System.out.println(s1.equals(s2));//false System.out.println(s1.equalsIgnoreCase(s2));//true } }
Output:
false true
2) So sánh chuỗi bằng toán tử ==
Toán tử == được sử dụng để so sánh tham chiếu (không phải giá trị) của 2 chuỗi.
Ví dụ 3:
public class Teststringcomparison3 { public static void main(String args[]) { String s1 = "Hello"; String s2 = "Hello"; String s3 = new String("Hello"); System.out.println(s1 == s2);//true (vì cả 2 cùng tham chiếu instance giống nhau) System.out.println(s1 == s3);//false(vì s3 tham chiếu instance mà không ở trong Pool) } }
Output:
true false
3) So sánh chuỗi bằng phương thức compareTo()
Phương thức compareTo () so sánh các giá trị theo thứ tự từ điển và trả về một giá trị số nguyên mô tả nếu chuỗi đầu tiên nhỏ hơn, bằng hoặc lớn hơn chuỗi thứ hai.
Giả sử s1 và s2 là hai biến chuỗi. Nếu:
- s1 == s2 : 0
- s1 > s2 : giá trị > 0
- s1 < s2 : giá trị < 0
Ví dụ 4:
public static void main(String args[]) { String s1 = "Hello"; String s2 = "Hello"; String s3 = "Java"; System.out.println(s1.compareTo(s2)); System.out.println(s1.compareTo(s3)); System.out.println(s3.compareTo(s1)); }
Output:
0 -2 2