Java string.equals(string) 没有按预期运行

标签 java android eclipse string equals

我偶尔会从 String.equals(String) 得到奇怪的结果。

代码如下:

boolean equals(OutputHolder other){
    boolean result=true;
    if( ! this.speciesEng.equals(other.speciesEng))
        result=false;
    else if( ! this.date.equals(other.date))
        result=false;
    else if( ! this.gridRef.equals(other.gridRef))
        result=false;
    else if( ! this.recorder.equals(other.recorder))
        result=false;
    return result; 
}

一切都非常简单,但在某些对象上,.equals() 在看似 2 个相同的字符串时返回 false。

这是发生错误时表达式监视列表的屏幕截图。正如您所见,尽管两个字符串看起来相同,但 this.speciesEng.equals(other.speciesEng) 返回 false。

字符串最初来自相同的字符串资源,但都通过 XMPP 连接并返回。

编辑:为了通过 XMPP 连接传递它们,它们已与其他字符串连接以表示整个 OutputHolder。然后在返回时使用 .substring(start,end) 将它们分开。我突然想到,如果我从子字符串中创建一个新字符串可能会有所不同,但这没有任何效果。修剪它们也没有。

我不知道如何继续调试问题。欢迎任何帮助或建议。

最佳答案

里面可能有一些空格。使用 String#trim调用 equals 之前的方法。

关于Java string.equals(string) 没有按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18737858/

相关文章:

c++ - 使用 eclipse 和 ubuntu 13.04 构建 opencv 2.4.5 应用程序时出错

java - map 中的多个标记未通过 SupportMapFragment 显示

java - 解决 javax.net.ssl.SSLHandshakeException : sun. security.validator.ValidatorException : PKIX path building failed Error?

android - 如何使用 webview 在基于 html5 的离线 Android 应用程序中播放 mp4 视频?

android - 后台收到通知时在谷歌地图中添加标记

Android eclipse错误: Unknown option '--auto-add-overlay'

java - 数据库 - [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序

JAVA - SSL 客户端 - 未使用 key 管理器

android - cocos2d 与 andengine 等距游戏?

eclipse - 如何在 Spring Boot 中使用 Bean 创建配置类?