當前位置:成語大全網 - 新華字典 - Java中的compareTo()函數是怎麽用的?

Java中的compareTo()函數是怎麽用的?

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;

參考資料:

百度百科-compareTo