Java在不同的计算机上返回不同的字符串比较结果

时间:2015-07-29 18:27:49

标签: java string string-comparison

我正在研究一个小程序,它的一个功能是从数据库中读取一组字符串,并将它与同一个表中的另一个字符串进行比较。如果它们是相同的,它只呈现一个字符串,如果它们不同,它会呈现两个字符串。

在我的开发机器上,这可以按预期工作。当我在客户端的测试计算机上安装应用程序时,该过程的行为有所不同。具体来说,字符串在我的计算机上返回相同,但它们经常在我的客户端计算机上返回不同。

这个代码很简单:

if (!item.getDescription().equals(item.getBackDescription())) {
        item.setDescriptionDisplay(item.getDescription() + "   (" + item.getBackDescription() + ")");
    } else {
        item.setDescriptionDisplay(item.getDescription());
}

这里有它的截图(我的电脑在上面):

From my computer From their computer

我已经想过并为此尝试了几件事:

  • 我正在将JRE与应用程序捆绑在一起,他们的计算机没有安装它。我的计算机上安装了JRE。想知道其中一个运行时是否存在问题或不同,我在计算机上卸载了JRE(和JDK)以确保它在我的应用程序副本中使用了捆绑版本。

  • 我想知道我用来在计算机上测试的数据是否存在问题。我将我正在使用的表格从他们的机器中导出并将其读入我的数据库副本,以确保数据相同。

其他说明:

  • 他们的计算机上的数据并不总是错误的。应该标记为不同的东西,而不是应该标记为相同的所有内容都标记为不正确。

任何帮助将不胜感激,我已经搞乱了几个小时。感谢。

1 个答案:

答案 0 :(得分:1)

您是否尝试删除一些空格?尝试:

if (!item.getDescription().trim().equals(item.getBackDescription().trim())) {
        item.setDescriptionDisplay(item.getDescription() + "   (" + item.getBackDescription() + ")");
    } else {
        item.setDescriptionDisplay(item.getDescription());
}