Es gibt drei prak­ti­sche Mög­lich­kei­ten, um Strings mit­ein­an­der zu ver­glei­chen. Neben der Option Java equals() stehen Ihnen der Operator == und die Methode Java compareTo() für Strings zur Verfügung.

Wie kann man Strings in Java ver­glei­chen?

Während man primitive Da­ten­ty­pen in Java ganz einfach mit dem passenden Java Operator == ver­glei­chen kann, ist das im Fall von Java Strings ein wenig kom­pli­zier­ter. Zwar können Sie auch in diesem Fall den Operator einsetzen, er wird dann al­ler­dings nicht den Inhalt der beiden Strings mit­ein­an­der ab­glei­chen, sondern lediglich die Referenz auf das jeweilige Objekt. Das mag in einigen Fällen aus­rei­chend oder gewollt sein, in anderen Fällen wird al­ler­dings eine andere Methode benötigt, die das ge­wünsch­te Ergebnis liefert. Glück­li­cher­wei­se bietet die Pro­gram­mier­spra­che mehrere Mög­lich­kei­ten. Besonders geläufig und praktisch sind diese drei:

  • Java equals()
  • Java compareTo() für Strings
  • Java Operator ==
Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive

Die Methode Java equals()

Am ein­fachs­ten und prak­tischs­ten, wenn Sie den Inhalt zweier Strings mit­ein­an­der ver­glei­chen möchten, ist die Methode equals() in Java. Sie stellt tat­säch­lich die beiden Werte gegenüber. Stimmen diese exakt überein, liefert die Methode „true“ als Be­stä­ti­gung. Un­ter­schei­den sie sich in ir­gend­ei­nem Punkt, lautet die Ausgabe „false“. Dies ist die Syntax der Methode:

public boolean equals(Objekt weiteresObjekt)
java

Die Funk­ti­ons­wei­se dieser Methode lässt sich am besten anhand eines einfachen Beispiels ver­an­schau­li­chen. Dafür erstellen wir drei Strings und ver­glei­chen den ersten dieser Strings mit den beiden anderen. So sieht das in der Praxis aus:

public class Main {
	public static void main(String[] args) {
	String string1 = "Dies ist ein String";
	String string2 = "Dies ist ein String";
	String string3 = "Dies ist ein ganz anderer String";
	System.out.println(string1.equals(string2));
	System.out.println(string1.equals(string3));
	}
}
java

Wenn wir diesen Code nun mit dem Java-Befehl System.out.println ausgeben, erhalten wir dies:

true
false
java

string1 und string2 sind identisch, string3 un­ter­schei­det sich jedoch von den anderen beiden. Während das in diesem Beispiel noch mit bloßem Auge zu erkennen ist, gibt es andere Strings, die sich auf den ersten Blick viel­leicht ähneln, aber durch ein kleines Detail von­ein­an­der abweichen. Java equals() ist eine sehr gute Methode, um hierbei Fehler zu vermeiden.

Java compareTo() für Strings

Die zweite Methode ist ein wenig kom­pli­zier­ter, funk­tio­niert aber ebenfalls ver­läss­lich. Java compareTo() ver­gleicht Strings le­xi­ko­gra­phisch nach dem Unicode-Wert der einzelnen Zeichen in einem String. Dabei werden die einzelnen Zeichen ge­gen­über­ge­stellt und ab­ge­gli­chen. Ent­spricht ein String dem anderen, gibt die Methode 0 als Antwort aus. Ist der erste String kürzer als der zweite, wird ein negativer Wert aus­ge­ge­ben. Ist er hingegen länger, ist die Ausgabe ein positiver Wert. Dies ist die Syntax der Methode:

public int compareTo(String andererString)
java

Die Funk­ti­ons­wei­se erläutern wir Ihnen anhand eines einfachen Beispiels. Dabei erstellen wir wieder drei Strings und ver­glei­chen den ersten mit den beiden anderen. Dies ist der Code:

public class Main {
	public static void main(String[] args) {
	String string1 = "Dies ist ein String";
	String string2 = "Dies ist ein String";
	String string3 = "Dies ist ein ganz anderer String";
	System.out.println(string1.compareTo(string2));
	System.out.println(string1.compareTo(string3));
	}
}
java

Wenn wir diesen Code nun mit System.out.println ausgeben, erhalten wir dies:

0
-20
java

Möchten Sie Java compareTo() für Strings anwenden, aber dabei Groß- und Klein­schrei­bung igno­rie­ren, nutzen Sie die an­ge­pass­te Methode compareToIgnoreCase(). Diese funk­tio­niert so:

public class Main {
	public static void main(String[] args) {
	String string1 = "Dies ist ein String";
	String string2 = "Dies ist ein String";
	String string3 = "DIES IST EIN STRING";
	System.out.println(string1.compareToIgnoreCase(string2));
	System.out.println(string1.compareToIgnoreCase(string3));
	}
}
java

Die Ausgabe ändert sich ent­spre­chend:

0
0
java

Der Java Operator ==

Wie erwähnt können Sie grund­sätz­lich auch den Operator == verwenden, um zwei Strings mit­ein­an­der zu ver­glei­chen. Er wird die Re­fe­ren­zen ver­glei­chen und nicht die ei­gent­li­chen Werte. Das können wir ab­schlie­ßend in einem weiteren Beispiel ver­an­schau­li­chen:

public class Main { public static void main(String[] args) { String string1 = “Dies ist ein String”; String string2 = “Dies ist ein String”; String string3 = new String (“Dies ist ein String”); System.out.println(string1string2); System.out.println(string1string3); } }

Da string1 und string2 sich auf dieselbe Instanz beziehen, lautet die Ausgabe „true“. string3 bezieht sich hingegen auf eine andere Instanz. Somit lautet die Ausgabe „false“, obwohl der Wert bzw. der Text innerhalb der Strings identisch ist.

true
false
java
Zum Hauptmenü