gpt4 book ai didi

java - JPasswordField 值和字符串不相等,但它们看起来相同

转载 作者:行者123 更新时间:2023-12-03 23:50:08 26 4
gpt4 key购买 nike

我知道以前有人问过这个问题,但他们没有使用 .equals()。所以我要再问一次,为什么我有两个字符串,但是当我将它们与 .equals() 进行比较时,我得到了 false。这两个字符串是 1234(passwordField2.getPassword()String s = bufferedreader.readLine()。)我用 s.toCharArray 来比较它们,结果是一样的。我试着把它们都打印出来,然后我得到了1234
1234

有人知道为什么会这样吗?谢谢!

最佳答案

查看 JavaDocs , passwordField2.getPassword() 返回一个 char[]

以下代码应该适合您:

boolean passwordsMatch = bufferedreader.readLine().equals(
new String(passwordField2.getPassword())
);

此代码的工作原理是将 char[] 转换为字符串,然后可以将其与原始 String 值进行比较。

编辑:As Alex L. states in his answer , JPasswordField 出于安全目的将密码存储为字符数组。

因此,编写此代码的更好方法可能是:

boolean passwordsMatch = Arrays.equals(
passwordField2.getPassword(),
bufferedreader.readLine().toCharArray()
);

关于java - JPasswordField 值和字符串不相等,但它们看起来相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35330050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com