Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java比较带哈希和不带哈希的字符串_Java_String_Hash_Compare - Fatal编程技术网

Java比较带哈希和不带哈希的字符串

Java比较带哈希和不带哈希的字符串,java,string,hash,compare,Java,String,Hash,Compare,我有一个包含哈希的字符串(它是由第三方程序自动生成的),还有一个不包含哈希的字符串,我需要与第一个字符串进行比较 方法.equals()给出false。 还有什么方法可以比较它们呢?使用equals(字符串另一个字符串)比较字符串值。如果该方法返回false,则字符串值根本不相等 检查字符串的大小写、前导空格和尾随空格等。如果方法==和.equals()给出false,则字符串和引用既不指向同一对象,也不指向堆中有意义的等效对象。此外,=不应用于比较字符串文本如果我理解正确,有两个字符串需要比较

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

方法
.equals()
给出false。
还有什么方法可以比较它们呢?

使用
equals(字符串另一个字符串)
比较字符串值。如果该方法返回false,则字符串值根本不相等


检查字符串的大小写、前导空格和尾随空格等。

如果方法
==
.equals()
给出
false
,则
字符串和
引用既不指向同一对象,也不指向堆中有意义的等效对象。此外,
=
不应用于比较
字符串
文本

如果我理解正确,有两个字符串需要比较,一个是原始字符串(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));
}

希望这能满足你的需求。否则,用一个具体的例子来描述这个问题就好了。

不要对字符串使用
=
(顺便说一句
==
不是“方法”)。发布你的输入值。如果两个相等,则必须相等。不要期望字符串的哈希值与字符串相等。要比较什么?散列还是字符串?“平等”应该有效。不要使用==。我有两个相同的字符串-第一个包含哈希,第二个不包含。如何比较它们?我想比较字符串值是否相同。正如我前面提到的,First字符串包含散列,second-not。因此equals()方法给出false。我还能怎么做呢?