java中的compareto方法的詳細介紹

java中的compareto方法的詳細介紹
javacompareTo
java中的compareto方法,返回參與比較的前後兩個字符串的asc碼的差值,看下面一組代碼
String a=“a”,b=“b”;
System.out.println(a.compareto.b);
則輸出-1;
若a=“a”,b="a"則輸出0;
若a=“b”,b="a"則輸出1;

單個字符這樣比較,若字符串比較長呢??
若a=“ab”,b=“b”,則輸出-1;
若a=“abcdef”,b="b"則輸出-1;
也就是說,如果兩個字符串首字母不同,則該方法返回首字母的asc碼的差值;

如果首字母相同呢??
若a=“ab”,b=“a”,輸出1;
若a=“abcdef”,b="a"輸出5;
若a=“abcdef”,b="abc"輸出3;
若a=“abcdef”,b="ace"輸出-1;
即參與比較的兩個字符串如果首字符相同,則比較下一個字符,直到有不同的爲止,返回該不同的字符的asc碼差值,如果兩個字符串不一樣長,可以參與比較的字符又完全一樣,則返回兩個字符串的長度差值

有關漢字的asc碼還沒有研究過,好像很長一樣,以後有機會再去研究吧……

9、java.(compareTo的用法)
public class amazing
{
public static void main(String[] args)
{
int name1=10;
in name2=20;
int result=name1.compareTo(name2);
if(result<0)
System.out.println(“yes”);
else {if(result==0)
System.out.println(“equal”);
else
System.out.println(“no”);
}
}
}
爲什麼有錯誤?請給以修改,還有,請問什麼是String?

解釋一:String 是字符串,它的比較用compareTo方法,它從第一位開始比較,如果遇到不同的字符,則馬上返回這兩個字符的ascii值差值…返回值是int類型

像你題目中,int跟int的比較不能用compareTo方法,直接用大於(>) 小於(<) 或者 等於(==) 不等於(!=)來比較即可

解釋二:compare to 方法比較的是兩個字符串的大小,你可以先把你的int型變量轉換成String再進行比較
String.valueOf()方法
具體改後:
public class amazing
{
public static void main(String[] args)
{
int name1=10;
int name2=20;
int result=String.valueOf(name1).compareTo(String.valueOf(name2));
if(result<0)
System.out.println(“yes”);
else {if(result==0)
System.out.println(“equal”);
else
System.out.println(“no”);
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章