我有两个字符串需要比较,但我希望进行有意义的比较,使得当它们是数字时,实际值应进行比较。到目前为止,我已经尝试了以下解决方案:
String str1 = "-0.6";
String str2 = "-.6";
if (NumberUtils.isNumber(str1) && NumberUtils.isNumber(str2)) {
Number num1 = NumberUtils.createNumber(str1);
Number num2 = NumberUtils.createNumber(str2);
System.out.println(num1.equals(num2));
} else {
System.out.println(str1.equals(str2));
}
这个方法可以工作,因为两个值都被转换成了double
类型。
但是在下面的情况中,这种方法就不会奏效:
String str1 = "6";
String str2 = "6.0";
有没有简单的方法可以做到这一点,或者我必须编写自己的比较器(Comparator)?
createNumber()
方法始终返回数字的Double
类型? - CodebenderNumber num1 = 0. + NumberUtils.createNumber(str1);
的方式解决?对于num2
也是一样的。 - skypjack