Java比较字符串与哈希和没有哈希

时间:2014-03-11 12:59:10

标签: java string hash compare

我有一个包含哈希的字符串(它是由第三方程序自动生成的),我有另一个不包含哈希的字符串,我需要与第一个字符串进行比较。

方法.equals()给出错误。 我怎么能比较它们呢?

3 个答案:

答案 0 :(得分:2)

如果方法==.equals()给出false,则String引用都不指向堆中的相同对象和有意义的等效对象。除此之外,==不应用于比较String文字

答案 1 :(得分:0)

使用equals(String anotherString)比较字符串值。如果该方法返回false,则字符串值不相等。

检查字符串是否有大写与小写,前导和尾随空格等等。

答案 2 :(得分:0)

如果我理解正确,有两个要比较的字符串,一个是原始字符串(s1),第二个字符串包含第三方程序插入的原始字符串+其散列(s2)。如果是这样,内置的equals()方法将不返回true。我将创建自己的equals()方法实现来检查它。

这两种方法应该可以解决问题,但我更喜欢第二种方法。

private static boolean equals(String s1, String s2) {
    String s1Hash = String.valueOf(s1.hashCode());
    return (s2.contains(s1) && s2.contains(s1Hash));
}

private static boolean equals2(String s1, String s2) {
    String s1Hash = String.valueOf(s1.hashCode());
    String s2NoHash = s2.replace(s1Hash,"");
    return (s1.equals(s2NoHash));
}

希望这能满足您的需求。否则,描述问题的具体例子将是好的。

相关问题