今天上午写了一道程序,功能是比较任意两个字符串的大小。使用compareTo()方法做时,发现如果两个字符串都是由纯数字组成的时候会有错误出现。
比如我定义 String s1 = "123";
String s2 = "32";
从理论上来说,123是比32大的,但用compareTo方法得到的结果却相反。在网上找了一番,终于明白了compareTo方法比较的是两个字符串的单个字符,也就是比较了"1"和"3"的大小,3大于1,所以就得到了不想得到的结果。
我用了一个判断来处理这个问题,定义两个比较方法,如果输入的两个字符串是纯数字,调用方法1(该方法中不用comparTo)其他情况一律调用方法2(该方法含有compareTo)。
OK,问题解决。
呵,如果看到这篇文章的人还有更好的方法,希望告诉我,先谢了!