Hallo, das ist Kechon. ** Schreibst du Java? ** ** ** Ich habe in den letzten Monaten nicht codiert. Ich begann hastig Java Java zu studieren (ab heute) Ich möchte es vorstellen, weil ich mich damals unwohl fühlte.
Wie vergleichen Sie Zeichenfolgen, wenn Sie sie vergleichen?
String str1 = "test";
String str2 = "test";
if (str1 == str2) {
System.out.print("same");
} else {
System.out.print("diff");
}
Ja, das ist nicht gut. Ich werde wütend, wenn ich diesen Code schreibe. Ja, ich bin. Der Operator "==" vergleicht die Speicheradressen von Objekten.
Unterschiedliche Objekte haben grundsätzlich unterschiedliche Speicheradressen. Dieses Mal möchte ich die Zeichenfolge des Objekts vergleichen, was meiner Absicht widerspricht.
**, aber in diesem Fall wird "same" ausgegeben. ** ** ** Seien Sie vorsichtig, da der String selbst unangenehm ist. Es ist nicht das Hauptthema und ich kenne es nicht im Detail, deshalb werde ich es weglassen.
String str1 = "1";
String str2 = "1";
if (str1.equals(str2)) {
System.out.print("same");
} else {
System.out.print("diff");
}
Es ist normal. Ich sehe es oft. Aber haben Sie jemals den Inhalt von Object.equals gesehen?
Der Inhalt ist ...
public boolean equals(Object obj) {
return (this == obj);
}
** "==" Benutze es!
Ich war wütend, als ich wütend auf "==" war.
Der Zeichenfolgenvergleich ist für equals und "==" gleich ????
** Natürlich nicht. ** ** **
Die equals-Methode wird von der String-Klasse überschrieben. Unten finden Sie den Inhalt von String.equals.
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String aString = (String)anObject;
if (coder() == aString.coder()) {
return isLatin1() ? StringLatin1.equals(value, aString.value)
: StringUTF16.equals(value, aString.value);
}
}
return false;
}
Dies verwendet auch "==", aber wenn die Speicheradresse unterschiedlich ist, wird ein weiterer Vergleich durchgeführt.
Object.equals ist nur ein Vergleich mit "==" String.equals wird mit "==" verglichen, aber wenn das Vergleichsziel eine Zeichenfolge ist, verhält es sich speziell (dies ist die erwartete Bewegung).
Recommended Posts