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。我还能怎么做呢?