字典比較compareTo() 方法詳解
阿新 • • 發佈:2021-12-18
compareTo() 是通過比較字典來得出結論的,比較是基於字串中每個字元的Unicode值,我們可以使用該方法判斷他們是否相等,一般用於BigDecimal的比較
首先我們看compareTo的方法
- public int compareTo(String anotherString)
- anotherString 代表被對比的引數
- public int compareTo(Object o)
- o代表物件
返回值是整形的,它對應的是第一個字元和引數的第一個字元比較的Unicode差值,如果他們不相同,就會返回他們的的差值,如果相等,就會接著比較第二個字元
- 如果引數字串等於此字串,則返回值 0
- 如果此字串小於字串引數,則返回一個小於 0 的值
- 如果此字串大於字串引數,則返回一個大於 0 的值
例項
BigDecimal對比
有時候我們對比BigDecimal會直接對比int型別,那麼用equals對比需要轉為一樣的型別,否則對比的結果不同
public static void main(String[] args) { BigDecimal bigDecimal1 = BigDecimal.valueOf(1); System.out.println(bigDecimal1); if (bigDecimal1.equals(1)) { System.out.println("相等"); }else { System.out.println("不相等"); } }
結果:
如果不想轉為BigDecimal對比,想進行int和BigDecimal對比,我們可以使用compareTo()方法
public static void main(String[] args) { BigDecimal bigDecimal1 = BigDecimal.valueOf(1); BigDecimal bigDecimal2 = BigDecimal.valueOf(1); BigDecimal bigDecimal3 = BigDecimal.valueOf(2); int result; result = bigDecimal1.compareTo(bigDecimal2); System.out.println(result); result = bigDecimal1.compareTo(bigDecimal3); System.out.println(result); result = bigDecimal3.compareTo(bigDecimal1); System.out.println(result); if (bigDecimal1.compareTo(bigDecimal2) == 0){ System.out.println("相等"); } if (bigDecimal1.compareTo(bigDecimal3) != 0){ System.out.println("不相等"); } }
結果:
String對比
public static void main(String[] args) {
String str1 = "Strings";
String str2 = "Strings";
String str3 = "Strings123";
int result;
result = str1.compareTo( str2 );
System.out.println("str2-str1:"+result);
result = str2.compareTo( str3 );
System.out.println("str3-str2:"+result);
result = str3.compareTo( str1 );
System.out.println("str1-str3:"+result);
}