我在下面有一个例子:
public static void main(String[] args) {
String a = "[email protected]";
System.out.println(a.hashCode());
System.out.println(String.format("%x%n", a.hashCode()));
String text1 = String.format("%x%n", a.hashCode());
String text2 = "9f4e93d3";
if (text1.equals(text2)) {
System.out.println("equals");
} else {
System.out.println("not equals");
}
}
以及我的结果:
-1622240301
9f4e93d3
not equals
我不知道为什么我的代码不输出“等于”。有人可以为我解释吗?谢谢。
如果将.trim()用作“ text1.trim()”,则可以达到“等于”。喜欢这个。
我认为text1的值在9f4e93d3之后可以有更多字符
public static void main(String[] args) {
String a = "[email protected]";
// System.out.println(a.hashCode());
// System.out.println(String.format("%x%n", a.hashCode()));
String text1 = String.format("%x%n", a.hashCode());
String text2 = "9f4e93d3";
System.out.println(text1+"-"+text2);
if (text1.trim().equals(text2)) {
System.out.println("equals");
} else {
System.out.println("not equals");
}
}
输出:
9f4e93d3
-9f4e93d3
equals