Các string trong Java là các Object được hỗ trợ bên trong bởi một mảng char. Vì mảng là bất biến và string cũng là một loại mảng đặc biệt chứa các ký tự, do đó, string cũng là bất biến.
Các bài viết liên quan:
Class String của Java bao gồm rất nhiều phương thức để thực thi các thao tác khác nhau trên string như so sánh(), concat(), equals(), split(), length(), replace(), compareTo(), substring(), v.v. .Trong số các phương thức này, chúng ta sẽ tập trung vào phương thức compareTo().
Phương thức String.compareTo()
Phương thức compareTo() của Class String trong Java so sánh string đã cho với string hiện tại theo từ điển. Nó trả về một số dương, số âm hoặc 0. Nó so sánh các string trên cơ sở giá trị Unicode của từng ký tự trong string.
Nếu string đầu tiên lớn hơn string thứ hai về mặt từ điển, nó sẽ trả về một số dương (sự khác biệt của giá trị ký tự). Nếu string đầu tiên nhỏ hơn string thứ hai về mặt từ điển, nó sẽ trả về một số âm và nếu string đầu tiên bằng string thứ hai về mặt từ điển, nó sẽ trả về 0.
Ghi chú:
- nếu string1 > string2, nó trả về số dương
- nếu string1 < string2, nó trả về số âm
- nếu string1 == string2, nó trả về 0
Có ba biến thể của phương thức compareTo(). Bài viết này mô tả tất cả chúng, như sau
int compareTo(Object obj)
Phương thức này so sánh string này với Object khác.
Cú pháp:
int compareTo(Object obj)
Thông số:
- obj: Object được so sánh.
Giá trị trả về: Giá trị 0 nếu đối số là một string theo từ điển bằng với string này; một giá trị nhỏ hơn 0 nếu đối số là một string lớn hơn string này về mặt từ điển; và một giá trị lớn hơn 0 nếu đối số là một string nhỏ hơn string này về mặt từ điển.
//example compareTo public class Cmp1 { public static void main(String args[]) { // Initializing Strings String str1 = "compareTos"; String str2 = new String("compareTos"); String str3 = new String("astha"); // Checking if compareTos string // equates to compareTos object System.out.print( "Difference of compareTos(obj) and compareTos(str) : "); System.out.println(str1.compareTo(str2)); // Checking if compareTos string // equates to astha object System.out.print( "Difference of astha(obj) and compareTos(str) : "); System.out.println(str1.compareTo(str3)); } }
int compareTo(String anotherString)
Phương pháp này so sánh hai string theo từ điển.
Cú pháp:
int compareTo(String anotherString)
Thông số:
- AnotherString: string được so sánh.
Giá trị trả về: Giá trị 0 nếu đối số là một string theo từ điển bằng với string này; một giá trị nhỏ hơn 0 nếu đối số là một string lớn hơn string này về mặt từ điển; và một giá trị lớn hơn 0 nếu đối số là một string nhỏ hơn string này về mặt từ điển.
// Java code to demonstrate the // working of compareTo() public class Cmp2 { public static void main(String args[]) { // Initializing Strings String str1 = "compareTos"; String str2 = "compareTos"; String str3 = "astha"; // Checking if compareTos string // equates to compareTos string System.out.print( "Difference of compareTos(str) and compareTos(str) : "); System.out.println(str1.compareTo(str2)); // Checking if compareTos string // equates to astha string System.out.print( "Difference of astha(str) and compareTos(str) : "); System.out.println(str1.compareTo(str3)); } }
int compareToIgnoreCase(String str)
Phương pháp này so sánh hai string theo từ điển, bỏ qua sự khác biệt về chữ hoa chữ thường.
Cú pháp:
int compareToIgnoreCase(string str)
Thông số:
- str: string được so sánh.
Giá trị trả về: Phương thức này trả về một số nguyên âm, 0 hoặc một số nguyên dương khi string được chỉ định lớn hơn, bằng hoặc nhỏ hơn string này, bỏ qua các cân nhắc về chữ hoa chữ thường.
public class Cmp3 { public static void main(String args[]) { // Initializing Strings String str1 = "compareTos"; String str2 = "coMparetos"; // Checking if compareTos string // equates to compareTos string // case sensitive System.out.print( "Difference of geeks and coMparetos (case sensitive) : "); System.out.println(str1.compareTo(str2)); // Checking if compareTos string // equates to astha string // case insensitive // using compareToIgnoreCase() System.out.print( "Difference of compareTos and coMparetos (case insensitive) : "); System.out.println(str1.compareToIgnoreCase(str2)); } }