【问题标题】:String comparison returns wrong result字符串比较返回错误结果
【发布时间】:2012-10-10 11:42:30
【问题描述】:

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

这可能有一个非常明显的答案,但谁能告诉我我做错了什么?

【问题讨论】:

  • 你可以试试 appVersion.trim().equals(latestVersion.trim()) 吗?如果这不起作用,则将 toUpperCase() 或 toLowerCase() 添加到两个字符串上的 trim() 调用中,然后查看:)
  • 您尚未发布如何创建 appversionlatestversion 并为它们分配字符串值。
  • 使用 trim() 方法去除空白。
  • 感谢您的回复,trim() 也不起作用。 @Arun 一定是对的,当我分配变量时出了点问题。 appversion 设置如下:appversion = getVersionNumber(MainActivity.this); 和 latestversion 从 HttpResponse 设置

标签: java android string string-comparison


【解决方案1】:

在比较字符串变量时,使用 trim() 方法代替 .replaceAll() 方法删除空格。

如下修改你的代码,

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 抱歉,我没有足够的声望来添加 cmets。
    【解决方案3】:

    朋友试试这个

    System.out.println("app version: "+ appversion.trim() + " latest version:"+latestversion.trim()); 
    
    if(!appversion.trim().equals(latestversion.trim()))
    {            
        System.out.println("not the same"); 
    } 
    

    【讨论】:

      【解决方案4】:

      代码运行良好:-

       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()))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-07
        • 2015-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多