Ich bin mit Java String.Equals() -Methode zwei Strings zu vergleichen. Die Strings werden aus einer Datei abgerufen, die zuerst jedes Wort einzeln durch Splitting Strings mit der String.split() -Methode gelesen und gespeichert wird.Vergleich Java Strings.equals() Methode liefert eine falsche BoolAusdruck
Aber die Methode entspricht nicht „true“ für einige String ergibt, die genau gleich ist.
Hier, ich bin Umsetzung Login-Programms, die Benutzername und Passwort ein und überprüft von der file.dat nimmt, ob der Benutzer vorhanden ist oder nicht, und falls vorhanden, ob er richtiges Passwort oder nicht bereitstellt.
Unten ist die Logik Snippet:
for(int j = 0; j < attrib.length-1; j += 2)
{
if(j == 0)
attrib[j] = attrib[j].replace("null","");
if(u.equals(attrib[j]))
{
if(p.equals(attrib[j+1]))
{
System.out.println("Sucess");
chk++;
break;
}
}
if(chk == 1)
break;
}
Punkt mich, wo ich falsch. Hier
ist die Datei-Inhalt von "file.dat":
ritwik/1234/ezio/5678
Und hier ist die Terminal-Ausgabe: Terminal Output
"die Methode entspricht nicht" wahr "für eine Zeichenfolge, die genau das gleiche ist. Ja, tut es. Haben Sie Ihren Code debuggen? Haben Sie alle Werte überprüft, die verglichen werden? Auch:" Test "und" Test "sind nicht die gleichen, so wird dies nicht zu einem wahren führen, zum Beispiel – Stultuske
Könnten Sie bitte die Definition von" u "und" attrib "einschließen? –
" equals ergibt nicht "true" für einige Zeichenfolge, die genau gleich ist . "Dann sind sie nicht genau gleich. Versuchen Sie, das Ergebnis von' String.toCharArray() 'für jede der zwei Zeichenfolgen zu betrachten - sie können nicht druckbare Zeichen enthalten, oder vielleicht Codepunkte, die * gleich aussehen (oder Ähnliche), sind aber nicht. –