String values look the same but don't “.equals()” each other

穿精又带淫゛_ 提交于 2020-01-15 05:30:08

问题


I'm making a log in screen. It doesn't work so I decided to display the password (saved to a file), and the inputted password to the screen for comparison.

// 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();
}

I compared Strings like this:

else 
{
    scr.setText("." + filePassword + "." + '\n' + "." + password + ".");
}

This was the String comparison:

I compared chars like this

else 
{
    char[] filePass = filePassword.toCharArray();
    char[] pass = password.toCharArray();
}

This was the char comparison:

The outputs for this char array change every time you press the button.

Obviously there is a difference in the char arrays. I have no idea why. Could it be something to do with the way I've worked with the files? Probably not, considering it didn't happen anywhere else in my project.

Is there any way to fix this comparison? Using the .toString() method on both values doesn't work.

____________________________________________________________________________________________________________________________________________

Solution

if (password.equals(filePassword))

needs to be:

if (password.equals(filePassword.trim()))

The char array comparisons will always be different. The way to compare them is this:

import java.util.Arrays; // add to top of class
scr.setText(Arrays.toString(password.toCharArray()));  
scr.append(Arrays.toString(filePassword.toCharArray()));

回答1:


Could there be an extra character in any of the strings? Maybe a carriage return \r? You could use length() on both, or trim(), and compare afterwards. Or try:

System.out.println(Arrays.toString(password.toCharArray()));  
System.out.println(Arrays.toString(filePassword.toCharArray()));


来源:https://stackoverflow.com/questions/17929290/string-values-look-the-same-but-dont-equals-each-other

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!