I've two strings which I need to compare, but I want to compare them meaningfully such that when they are numbers their actual value should be compared. So far I've tried the following solution:
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));
}
This works as both are converted to doubles.
But this won't work in this case where:
String str1 = "6";
String str2 = "6.0";
Is there any easy way to do this, or will I have to write my own Comparator?
createNumber()method to always returnDoublefor numbers?Number num1 = 0. + NumberUtils.createNumber(str1);? The same fornum2.