java中的compareto方法留荔,返回參與比較的前后兩個(gè)字符串的asc碼的差值需纳,看下面一組代碼
String a="a",b="b";
System.out.println(a.compareto.b);
則輸出-1硫椰;
若a="a",b="a"則輸出0环壤;
若a="b",b="a"則輸出1谒亦;
單個(gè)字符這樣比較彬向,若字符串比較長(zhǎng)呢?屡拨?
若a="ab",b="b",則輸出-1只酥;
若a="abcdef",b="b"則輸出-1;
也就是說洁仗,如果兩個(gè)字符串首字母不同层皱,則該方法返回首字母的asc碼的差值;
如果首字母相同呢赠潦?叫胖?
若a="ab",b="a",輸出1;
若a="abcdef",b="a"輸出5她奥;
若a="abcdef",b="abc"輸出3瓮增;
若a="abcdef",b="ace"輸出-1;
即參與比較的兩個(gè)字符串如果首字符相同哩俭,則比較下一個(gè)字符绷跑,直到有不同的為止,返回該不同的字符的asc碼差值凡资,如果兩個(gè)字符串不一樣長(zhǎng)砸捏,可以參與比較的字符又完全一樣,則返回兩個(gè)字符串的長(zhǎng)度差值
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");
}
}
}
為什么有錯(cuò)誤?請(qǐng)給以修改垦藏,還有,請(qǐng)問什么是String?
解釋一:String是字符串,它的比較用compareTo方法,它從第一位開始比較,如果遇到不同的字符,則馬上返回這兩個(gè)字符的ascii值差值..返回值是int類型
像你題目中,int跟int的比較不能用compareTo方法,直接用大于(>)小于(<)或者?等于(==)不等于(!=)來比較即可
解釋二:compare?to方法比較的是兩個(gè)字符串的大小伞访,你可以先把你的int型變量轉(zhuǎn)換成String再進(jìn)行比較
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");
}
}
}