Сравнение строк возвращает неверный результат
Я пытаюсь сравнить 2 строки в Java, чтобы определить, являются ли они одинаковыми:
System.out.println("app version: "+ appversion + " latest version: "+ latestversion);
if(!appversion.equals(latestversion))
{
System.out.println("not the same");
}
Однако это дает мне неожиданные результаты, учитывая результаты:
app version: v1.1.2 latest version: v1.1.2
not the same
я использовал .replaceAll("\\s","");
удалить любые пробелы из строк без успеха.
Вероятно, есть очень очевидный ответ на этот вопрос, но может ли кто-нибудь сказать мне, что я делаю неправильно?
4 ответа
Решение
Вместо метода.replaceAll() используйте метод trim() для удаления пробелов при сравнении строковых переменных.
измените ваш код следующим образом,
if(!appversion.trim().equals(latestversion.trim()))
{
System.out.println("not the same");
}
Код работает нормально:-
String appversion=" v1.1.2";
String latestversion=" v1.1.2";
if(!appversion.equals(latestversion))
{
System.out.println("not the same");
}
Или вы можете использовать:-
if(!appversion.trim().equals(latestversion.trim()))
Приятель попробуй это
System.out.println("app version: "+ appversion.trim() + " latest version:"+latestversion.trim());
if(!appversion.trim().equals(latestversion.trim()))
{
System.out.println("not the same");
}