compareTo() 方法用於將 Number 對象與方法的參數進行比較。可用於比較 Byte, Long, Integer等。該方法用於兩個相同數據類型的比較,兩個不同類型的數據不能用此方法來比較。
語法
public int compareTo( NumberSubClass referenceName )
參數
referenceName?-- 可以是壹個 Byte, Double, Integer, Float, Long 或 Short 類型的參數。
返回值
1、如果指定的數與參數相等返回0。
2、如果指定的數小於參數返回 -1。
3、如果指定的數大於參數返回 1。
Java中的compareTo()函數用法比較另壹個函數字符:public int compareTo(String anotherString)?
按字典順序比較兩個字符串。該比較基於字符串中各個字符的 Unicode 值。將此 String 對象表示的字符序列與參數字符串所表示的字符序列進行比較。如果按字典順序此 String 對象在參數字符串之前,則比較結果為壹個負整數。
如果按字典順序此 String 對象位於參數字符串之後,則比較結果為壹個正整數。如果這兩個字符串相等,則結果為 0;compareTo 只有在方法 equals(Object) 返回 true 時才返回 0。?
這是字典排序的定義。如果這兩個字符串不同,則要麽它們在某個索引處具有不同的字符,該索引對二者均為有效索引,要麽它們的長度不同,或者同時具備上述兩種情況。
如果它們在壹個或多個索引位置上具有不同的字符,假設 k 是這類索引的最小值;則按照 < 運算符確定的那個字符串在位置 k 上具有較小的值,其字典順序在其他字符串之前。
這種情況下,compareTo 返回這兩個字符串在位置 k 處的兩個不同的 char 值,即值:?
this.charAt(k)-anotherString.charAt(k)?
如果它們沒有不同的索引位置,則較短字符串在字典順序上位於較長字符串的前面。這種情況下,compareTo 返回這兩個字符串長度的不同,即值:?
this.length()-anotherString.length()?
指定者:?接口 Comparable<String> 中的 compareTo?
參數:?anotherString - 要比較的 String。?
返回:?如果參數字符串等於此字符串,則返回 0 值;如果按字典順序此字符串小於字符串參數,則返回壹個小於 0 的值;如果按字典順序此字符串大於字符串參數,則返回壹個大於 0 的值。 ?
擴展資料:
compareTo就是比較兩個值,如果前者大於後者,返回1,等於返回0,小於返回-1,我下面給出了例子,由於比較的變量我用的是int,int型可以直接比較,所有沒有用到compareTo比較,如果聲明的是Date、String、Integer或者其他的,可以直接使用compareTo比較,比如以下函數代碼用法:
public int compareTo(TestModel1 o) {
return this.str1.compareTo(o.str1);
}
1.當兩個比較的字符串是英文且長度不等時,
1)長度短的與長度長的字符壹樣,則返回的結果是兩個長度相減的值
a="hello";
b="hell";
num=1;
或者
a="h";
b="hello";
num=4;
2)長度不壹樣且前幾個字符也不壹樣,從第壹位開始找,當找到不壹樣的字符時,則返回的值是這兩個字符比較的值
a="assdf";
b="bdd";
num=-1;
2.當兩個比較的字符串是英文且長度相等時,
1)壹個字符
a="a"; ? //97
b="b"; ? //98
num=-1;
2)多個字符,第壹個字符不同則直接比較第壹個字符
a="ah"; //a=97
b="eg"; //e=101
num=-4
3)多個字符,第壹個字符相同則直接比較第二個字符,以此類推
a="ae"; ? //e=101
b="aa"; ? //a=97
num=4;
參考資料: