NỘI DUNG BÀI VIẾT
Phương thức compareTo() trong String Java được sử dụng để so sánh hai chuỗi về mặt từ vựng. Phương thức này được khai báo trong interface Comparable. Vì String implement interface Comparable nên nó cung cấp phương thức compareTo().
Phương thức compareTo() trong String Java
Lớp String trong Java có 2 biến thể của phương thức compareTo().
- compareTo(String anotherString): phương thức này so sánh đối tượng String với String được truyền đến.
Nếu cả hai chuỗi bằng nhau, thì phương thức này trả về 0 nếu không nó chỉ mang lại giá trị âm hoặc dương.
Trong trường hợp cả hai chuỗi giống nhau, thì phương thức equals(String str) sẽ trả về true.
So sánh dựa trên giá trị Unicode của mỗi ký tự trong chuỗi. Bạn nên kiểm tra mã nguồn lớp String để kiểm tra cách thức hoạt động của phương thức này.
- compareToIgnoreCase(String str): hương thức compareTo() này tương tự như phương thức đầu tiên, ngoại trừ việc nó bỏ qua trường hợp. Nó sử dụng Bộ so sánh chuỗi CASE_INSENSITIVE_ORDER để so sánh không phân biệt chữ hoa chữ thường.
Nếu giá trị trả về của phương thức này là 0 thì equalsIgnoreCase (String str) sẽ trả về true. Phương thức này trả về một số nguyên âm, không hoặc một số nguyên dương vì String được chỉ định lớn hơn, bằng hoặc nhỏ hơn String này, bỏ qua các chữ hoa và chữ thường.
Ví dụ về phương thức compareTo()
Hãy xem một lớp java nhỏ giải thích cách sử dụng các phương thức so sánh trong chuỗi java.
public class StringCompareToExample {
/**
* This class show String compareTo examples
* @param args
*/
public static void main(String[] args) {
String str = "ABC";
System.out.println(str.compareTo("DEF"));
System.out.println(str.compareToIgnoreCase("abc"));
}
Code language: JavaScript (javascript)
Output:
-3
0
Output âm trên là do “ABC” ít hơn về mặt từ vựng so với “DEF”. Output là -3 vì nó so sánh các giá trị ký tự từng cái một. Bạn cũng có thể xác nhận điều này với chương trình thử nghiệm bên dưới.
public class Test {
public static void main(String[] args) {
char a = 'A';
char d = 'D';
System.out.println(a-d); //prints -3
}
}
Code language: JavaScript (javascript)
Vì vậy, khi “ABC” được so sánh với “DEF”, ký tự ở chỉ mục đầu tiên sẽ được so sánh. Vì chúng khác nhau và ‘A’ đứng trước ‘D’ về mặt từ vựng, nó trả về một số nguyên âm với sự khác biệt giữa chúng, do đó kết quả đầu ra là -3.
Vì vậy, nếu bạn so sánh “AABC” với “ADBC”, thì bạn cũng sẽ nhận được cùng một đầu ra là -3. Đó là tất cả đối với ví dụ phương thức Java String compareTo(). Lưu ý rằng phương thức này không giống với phương thức String equals().
Happy learrning!!!