java中的compareto方法的詳細介紹

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類型

像你題目中,intint的比較不能用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");
         }
}
}

發佈了28 篇原創文章 · 獲贊 38 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章