У меня есть две строки, которые мне нужно сравнить, но я хочу сравнить их осмысленно так, что, когда они являются числами, их фактическое значение следует сравнивать. До сих пор я попробовал следующее решение:Сравнение двух строк в Java
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";
Есть ли простой способ сделать это, или мне придется написать свой собственный компаратор?
И как вы действуете, когда одна строка не является чем-то вроде? – fge
Не можете ли метод 'createNumber()' всегда возвращать 'Double' для чисел? – Codebender
Это означает, что строка не предназначена для численных сравнений, таких как это. Вы должны пойти вместе, чтобы сравнить и сравнить их, как вы упомянули. – sakthisundar