繁体   English   中英

字符串比较返回错误的结果

[英]String comparison returns wrong result

我试图比较Java中的2个字符串,以确定它们是否相同:

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",""); 从字符串中删除任何空格都没有成功。

可能有一个非常明显的答案,但任何人都可以告诉我我做错了什么?

您是否尝试在两个字符串上使用.trim()?

而不是.replaceAll()方法,使用trim()方法在比较String变量时删除空格。

更改您的代码如下,

if(!appversion.trim().equals(latestversion.trim()))
{            
    System.out.println("not the same"); 
}

哥们试试这个

System.out.println("app version: "+ appversion.trim() + " latest version:"+latestversion.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()))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM