22 Stimmen

Java: Größer/Kleiner-Vergleich von Strings - The operator > is undefined for the argument type(s) java.lang.String

Frage von Gast | 22.09.2013 um 23:48

Ich würde gerne mit Java einen Vergleich zweier Strings implementieren. Vergleichen wir zum Beispiel die beiden Strings "a" und "b", ist "a" kleiner als "b", "b" ist größer als "a" und "a" ist gleich "a" beziehungsweise "b" ist gleich "b".

So weit so gut. In anderen Programmiersprachen habe ich diesen Vergleich auch super hingekommen, doch Java meckert bei der Verwendung von ">" und "<" und auch das "==" funktioniert nicht:

String a = "a";
String b = "b";

if (a > b) { ... }
if (a < b) { ... }
if (a == b) { ... }

Egal wie ich diesen Code auch umschreibe, es kommt ständig folgende Fehlermeldung:

The operator > is undefined for the argument type(s) java.lang.String,
java.lang.String

Was kann ich tun, damit ich einen String entsprechend mit einem anderen String vergleichen kann?

AntwortenPositivNegativ
7Beste Antwort11 Stimmen

In Java kann man Strings nicht einfach so vergleichen, da Strings eigenständige Objekte sind.

Benutze stattdessen die Methode .compareTo() für den größer-kleiner Vergleich:

String a = "a";
String b = "b";

if (a.compareTo(b) < 0)  { } // true
if (a.compareTo(b) > 0)  { } // false
if (a.compareTo(b) == 0) { } // false

Das Resultat von .compareTo() ist kleiner 0 wenn "a" kleiner ist als "b", größer 0 wenn "a" größer ist als "b" oder gleich 0, falls "a" und "b" die gleichen Zeichen enthalten.

Wenn du nur daran interessiert bist, ob "a" und "b" den gleichen Inhalt haben, kannst du auch .equals() benutzen:

String a = "a"
String b = "b";

if (a.equals(b)) { }  // true

Je nach Inhalt von "a" und "b" gibt .equals() true oder false zurück. Mehr dazu auch noch in der Frage zum Java String Vergleich. Dort ist dieser Vergleich noch etwas ausführlicher erklärt.
23.09.2013 um 10:13

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

O-Notation

Artikel | 0 Kommentare

HTML-Formular mit Daten vorbelegen

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.