字符串比较函数等于不给出正确的结果

时间:2014-02-10 14:07:49

标签: java eclipse

我正在使用eclipse和java 我想比较两个字符串,删除它们之间的所有空格。

这是我的代码

首先,我要删除字符串中的空格。

System.out.println("["+StringUtils.deleteWhitespace(s4)+"]");
System.out.println("["+StringUtils.deleteWhitespace(s3)+"]");

// comparing Strings
if(s4.equals(s3))
{
    System.out.println("Text Match");'      
}

以下是Eclipse控制台上显示的第1行和第2行的输出:

[gnarlyadj.Somethingthatisgnarlyhasmanyknotsandbumpyareasonitssurface.nudosoadj.Algonudosotienemuchosnudosyunasuperficiellenadebultos.]
[gnarlyadj.Somethingthatisgnarlyhasmanyknotsandbumpyareasonitssurface.nudosoadj.Algonudosotienemuchosnudosyunasuperficiellenadebultos.]

从我所看到的情况来看,两个字符串之间没有区别,但是它将字符串显示为不匹配。

2 个答案:

答案 0 :(得分:12)

您没有将deleteWhitespace()操作的结果分配给任何内容。因此,你的两个字符串将保持不变。

在打印之前将结果存储起来:

s4 = StringUtils.deleteWhitespace(s4);

答案 1 :(得分:1)

方法StringUtils.deleteWhitespace(s4)不会更改s4(Strings are immutable)引用的字符串,但会返回一个新字符串。

如果您执行以下代码:

s3 = StringUtils.deleteWhitespace(s3);
s4 = StringUtils.deleteWhitespace(s4);

if (s4.equals(s3)) {
    System.out.println("Text Match");'      
}

然后你会看到两个字符串真的相等,并且打印了“文本匹配”。