Vergleichen von Strings (Java): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
K
Zeile 19: Zeile 19:
 
}</code=java>
 
}</code=java>
  
Ausgabe:
+
Ausgabe:<br>
<code>equals</code> - da der Text der beiden String Objekte identisch ist<br>
+
*<code>equals</code> - weil der Text der beiden String Objekte identisch ist<br>
<code>gleich</code> - da <code>c</code> und <code>b</code> auf das gleiche Objekt zeigen
+
*<code>gleich</code> - weil <code>c</code> und <code>b</code> auf das gleiche Objekt zeigen
  
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]
 
[[Kategorie:Java Grundlagen]]
 
[[Kategorie:Java Grundlagen]]

Version vom 20. September 2013, 12:12 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.

<code=java>String a = new String("blabla"); String b = new String("blabla"); String c = b;

if (a.equals(b)) {

   System.out.println("equals");

}

if (a == b) {

   System.out.println("==");

}

if(c == b) {

  System.out.println("gleich");

}</code=java>

Ausgabe:

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