运行代码如下
String a ="6";
String b="50";
if (a.compareTo(b) < 0) {
System.out.println("a<b");
}else {
System.out.println("a>=b");
}
正常情况下,a=6,b=9可以正常输出a<b
但是上面那种情况下,竟然输出a>=b
有什么办法能让程序正常判断?
运行代码如下
String a ="6";
String b="50";
if (a.compareTo(b) < 0) {
System.out.println("a<b");
}else {
System.out.println("a>=b");
}
正常情况下,a=6,b=9可以正常输出a<b
但是上面那种情况下,竟然输出a>=b
有什么办法能让程序正常判断?
字符串的comparTo方法,是从左到右一个一个字符比较的,不比长度的;a的第一个字符6大于b的第一个字符5,所以a>=b
代码可如下
String a ="6";
String b="50";
if(a.length() == b.length()){
//一样长,使用compareTo比较
if (a.compareTo(b) < 0) {
System.out.println("a<b");
}else {
System.out.println("a>=b");
}
}else {
//不一样长,按长度比较
if (a.length() < b.length())) {
System.out.println("a<b");
}else {
System.out.println("a>=b");
}
}