Сравнение строк возвращает неверный результат

Я пытаюсь сравнить 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"); 
}

Вы пытались использовать.trim() для обеих строк?

Код работает нормально:-

 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"); 
} 
Другие вопросы по тегам