Vergleichen von Strings (Java): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 8: Zeile 8:


if (a.equals(b)) {
if (a.equals(b)) {
     System.out.println("equals");
     System.out.println(a.equals(b) ? "a equals b" : a not equals b);
}
}


if (a == b) {
if (a == b) {
     System.out.println("==");
     System.out.println(a == b ? "a == b" : "a != b");
}
}


if(c == b) {
if(c == b) {
   System.out.println("gleich");
   System.out.println(c == b ? "c == b" : "c != b");
}</syntaxhighlight>
}</syntaxhighlight>


Ausgabe:<br>
Ausgabe:<br>
*<code>equals</code> - weil der Text der beiden String Objekte identisch ist<br>
*<code>a equals b</code> - weil der Text der beiden String Objekte identisch ist<br>
*<code>gleich</code> - weil <code>c</code> und <code>b</code> auf das gleiche Objekt zeigen
*<code>c == b</code> - weil <code>c</code> und <code>b</code> auf das gleiche Objekt zeigen


{{Fragen stellen}}
{{Fragen stellen}}


[[Kategorie:Java Grundlagen]]
[[Kategorie:Java Grundlagen]]

Version vom 24. April 2020, 15:53 Uhr

Strings werden nicht wie primitive Datentypen mit dem "==" Operator verglichen!
Strings sind Objekte, die mit der Methode Object#equals(Object obj) verglichen werden.
Wenn man sie mit "==" vergleicht, wird nicht der Inhalt der Objekte, sondern die Referenz auf das Objekt selbst verglichen.

String a = new String("blabla");
String b = new String("blabla");
String c = b;

if (a.equals(b)) {
    System.out.println(a.equals(b) ? "a equals b" : a not equals b);
}

if (a == b) {
    System.out.println(a == b ? "a == b" : "a != b");
}

if(c == b) {
   System.out.println(c == b ? "c == b" : "c != b");
}

Ausgabe:

  • a equals b - weil der Text der beiden String Objekte identisch ist
  • c == b - weil c und b auf das gleiche Objekt zeigen


Fragen

Das Thema wurde nicht ausreichend behandelt? Du hast Fragen dazu und brauchst weitere Informationen? Lass Dir von uns helfen!

  • Besuche unseren Chat

Wir helfen dir gerne!