Java String - So sánh chuỗi

So sánh chuỗi trong java

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:

  1. Sử dụng phương thức equals()
  2. Sử dụng toán tử ==
  3. 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) {
		// TODO Auto-generated method stub
		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
	}

}

Kết quả:

Ví dụ 2:

public class Teststringcomparison2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s1 = "Hello";
        String s2 = "HELLO";
        System.out.println(s1.equals(s2));//false  
        System.out.println(s1.equalsIgnoreCase(s2));//true  
	}

}

Kết quả:

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) {
		// TODO Auto-generated method stub
		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)
	}

}

Kết quả:

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 class Teststringcomparison4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		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));
	}

}

Kết quả: