为什么string.equals在我的情况下不起作用?

问题描述 投票:-2回答:1

我在下面有一个例子:

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

我不知道为什么我的代码不输出“等于”。有人可以为我解释吗?谢谢。

java core
1个回答
0
投票

如果将.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
© www.soinside.com 2019 - 2024. All rights reserved.