開心生活站

位置:首頁 > IT科技 > 

compareto,java

IT科技2.23W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

compareto java是什麼,讓我們一起了解下?

compareto java是從數字上比較兩個Double對象。在應用到基本double值時,通過此方法進行的比較與通過Java語言的數值比較運算符(<、<=、== 和 >= >)進行的比較。

一. 在java中compareto的詳細方法介紹如下:

1、返回參與比較的前後兩個字符串的asc碼的差值,如果兩個字符串首字母不同,則該方法返回首字母的asc碼的差值。

String a1 = "a";String a2= "c";System.out.println(a1.compareTo(a2));//結果爲-2

2、即參與比較的兩個字符串如果首字符相同,則比較下一個字符,直到有不同的爲止,返回該不同的字符的asc碼差值。

String a1 = "aa";String a2= "ad";System.out.println(a1.compareTo(a2));//結果爲-3

3、如果兩個字符串不一樣長,可以參與比較的字符又完全一樣,則返回兩個字符串的長度差值。

String a1 = "aa";String a2= "aa12345678";System.out.println(a1.compareTo(a2));//結果爲-8

4、返回爲正數表示a1>a2, 返回爲負數表示a1。

compareto java

5、數字類型不能用compareTo,nt跟int的比較不能用compareTo方法,直接用大於(>)小於。

int num1 = 4;int num2 = 5;num1.compareTo(num2);//Cannot invoke compareTo(int) on the primitive type int

你可以先把你的int型變量轉換成String再進行比較。

int num1 = 4;int num2 = 5;//parse int to StringSystem.out.println((num1+"").compareTo(num2+""));//-1System.out.println(new Integer(num1).toString(). compareTo(new Integer(num2).toString()));//-1System.out.println(String.valueOf(num1).compareTo(String.valueOf(num2)));//-1

6、compareToIgnoreCase忽略大小寫。

不考慮大小寫,按字典順序比較兩個字符串。此方法返回一個整數,它的正負號是調用 compareTo 的正負號,調用時使用了字符串的規範化版本,其大小寫差異已通過對每個字符調用 Character.toLowerCase(Character.toUpperCase(character)) 得以消除。

注意,此方法不 考慮語言環境,因此可能在某些特定的語言環境中產生不理想的排序。java.text 包提供 Collators 來完成語言環境敏感的排序。

7、int型可以直接比較,所以沒有用到compareTo比較,如果聲明的是Date、String、Integer、或者其他的,可以直接使用compareTo比較。

Integer n1 = 5;Integer n2= 6;System.out.println(n1.compareTo(n2));//-1

二. Comparable接口中的compareTo,compareTo方法內必須做非空判斷(規範問題),當然int類型就不用了。

注意事項:

1、模型必須實現Comparable接口。

2、Collection.sort(list)會自動調用compareTo,如果沒有這句,list是不會排序的,也不會調用compareTo方法。

3、如果是數組則用Arrays.sort(a)方法注意要非空判斷,這裏實例就不判斷了。

標籤:compareto java