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类型,
1、如果字符串相等返回值0
2、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串)
3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度.
例:String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "cdfg";
System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1)
System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3)
System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
像你题目中,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");
}
}
}