Java String compareTo()
方法用於按字典順序比較兩個字串。此方法在Comparable
介面中宣告。由於String
實現了Comparable
介面,因此它提供了compareTo()
方法實現。
Java String
類compareTo()
方法有兩種變體。
1. compareTo(String anotherString)方法:
此方法將String物件與按字典順序傳遞的anotherString
引數進行比較。
如果String物件在傳遞的引數之前,則返回負整數,如果String物件在引數String之後,則返回正整數。
當兩個String都具有相同的值時返回0
,在這種情況下,equals(String str)
方法將返回true
。
比較是基於字串中每個字元的Unicode值。應該檢視String類原始碼以了解此方法的工作方式。
2. compareToIgnoreCase(String str)方法
這個方法與第一個類似,只是它忽略了大小寫。它使用String CASE_INSENSITIVE_ORDER比較器進行不區分大小寫的比較。
如果此方法的返回值為0
,則equalsIgnoreCase(String str)
將返回true
。當指定的String大於,等於或小於此String時,此方法返回負整數,零或正整數,比較忽略大小寫。
下面來看一個java類,演示如何使用java string compareTo()
方法的用法。
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"));
}
}
執行上面範例程式碼,得到以下結果 -
-3
0
輸出為負值,這是因為「ABC」在字典上比「DEF」小。因為它逐個比較字元值。也可以使用以下測試程式進行確認。
public class Test {
public static void main(String[] args) {
char a = 'A';
char d = 'D';
System.out.println(a-d); //prints -3
}
}
因此,當「ABC」與「DEF」進行比較時,將比較第一個索引處的字元。由於它們是不相同,並且’A’在字典之前出現在’D’之前,它返回一個負整數,它們之間有差值,因此輸出為-3
。
因此,如果將「AABC」與「ADBC」進行比較,那麼將獲得相同的輸出:-3
。這就是Java String compareTo()
方法範例的全部內容。請注意,此方法與String equals()
方法不同。