我正在制作登录屏幕。它不起作用,所以我决定显示密码(保存到文件中),并将输入的密码显示到屏幕上进行比较。
// filePassword is the password inputted from the file as a String.
// password is the String value of the EditText on the screen.
if (password.equals(filePassword))
{
logIn();
}
我Strings
是这样比较的:
else
{
scr.setText("." + filePassword + "." + '\n' + "." + password + ".");
}
这是String
比较:
我chars
这样比较
else
{
char[] filePass = filePassword.toCharArray();
char[] pass = password.toCharArray();
}
这是char
比较:
char array
每次按下按钮时,此输出都会发生变化。
显然是有区别的char arrays
。我不知道为什么。这可能与我处理文件的方式有关吗?可能不会,考虑到它在我的项目的其他任何地方都没有发生。
有什么办法可以解决这种比较?对两个值都使用该.toString()
方法不起作用。
____________________________________________________________________________________________________________________________________________
解决方案
if (password.equals(filePassword))
需要是:
if (password.equals(filePassword.trim()))
比较char array
总是不同的。比较它们的方法是这样的:
import java.util.Arrays; // add to top of class
scr.setText(Arrays.toString(password.toCharArray()));
scr.append(Arrays.toString(filePassword.toCharArray()));