Strings in Java vergleichen
-
Vergleichen von Zeichenketten in Java mit der Methode
compareTo()
-
Die Methode des Gleichheitsoperators
==
-
Die Methode
equals()
-
Die
equals()
Methode Case Sensitivity -
Die Methode
contentEquals()
Fast alle Java-Entwickler werden irgendwann einmal zwei Strings vergleichen müssen, um die Logik einer Anwendung zu vervollständigen. Eine String-Variable ist eine Sammlung von Zeichen. Um die Vergleichsoperationen zu verstehen, die mit einem String möglich sind, müssen wir zunächst die Eigenschaften einer Zeichenkette verstehen.
- Strings sind unveränderlich. Das bedeutet, dass sie nicht wachsen können und jede Änderung an einer Zeichenkette dazu führt, dass eine neue Zeichenkette gebildet wird. Das liegt daran, dass sie intern durch char-Arrays unterstützt werden, die unveränderlich sind.
- Wann immer wir sagen, dass eine Zeichenkette erstellt wird, werden zwei Objekte in verschiedenen Speicherbereichen erstellt. Eines wird im Heap-Bereich erstellt, während das zweite im String-Konstanten-Pool erstellt wird. Die String-Referenz verweist die Maschine auf das Objekt im Heap-Bereich.
Ein Beispiel,
String mystring = "World"
In diesem Fall zeigt mystring
auf den Heap-Bereich, in dem der String World
gespeichert ist.
Nachfolgend sind die vier Methoden zum Vergleichen von Strings in Java aufgeführt und werden in diesem Artikel ausführlich erklärt:
- Die Methode
compareTo()
- Der Gleichheitsoperator
==
- Die Methode
equals()
- Die Methode
contentEquals()
Vergleichen von Zeichenketten in Java mit der Methode compareTo()
Sie vergleicht zwei Zeichenketten lexikografisch. Sie arbeitet, indem sie zunächst jedem Zeichen in der Zeichenkette einen Unicode-Wert zuweist und dann die Zeichenketten vergleicht. Dieser Prozess gibt das Ergebnis als Null, eine positive oder negative Zahl zurück.
- Das Ergebnis ist Null, wenn die beiden verglichenen Zeichenketten lexikografisch gleich sind.
- Das Ergebnis ist positiv, wenn die erste Zeichenkette größer als die zweite Zeichenkette ist.
- Das Ergebnis ist negativ, wenn die zweite Zeichenkette größer als die erste Zeichenkette ist.
Es gibt zwei Möglichkeiten, die Methode compareTo()
zu verwenden.
Zwei Zeichenketten literal vergleichen
Lassen Sie uns String1 und String2 vergleichen. Das Ergebnis, das wir durch den Vergleich dieser beiden Zeichenketten erhalten, ist ein int
-Typ. Beispiel:
public class CompareToCode {
public static void main(String args[]) {
String string1 = "now";
String string2 = "now";
int result = string1.compareTo(string2);
System.out.println(result);
}
}
Ausgabe:
0
Vergleich zwischen einer Zeichenkette und einem Objekt
Die Methode compareTo()
ermöglicht auch den Vergleich von nicht referenzierten Objekten mit einer Zeichenkette. Beispiel:
public class CompareTo {
public static void main(String args[]) {
String string1 = "now";
int result = string1.compareTo("now");
System.out.println(result);
}
}
Ausgabe:
0
compareTo()
Unterscheidung von Groß- und Kleinschreibung
Die Methode compareTo()
ist case-sensitiv. Das heißt, selbst wenn zwei Zeichenketten gleich sind, zeigt sie sie als unterschiedlich an, wenn sie nicht einheitlich sind. Beispiel:
public class CompareTo {
public static void main(String args[]) {
String string1 = "hello";
String string2 = "HELLO";
int result = string1.compareTo(string2);
System.out.println(result);
}
}
Ausgabe:
-32
Die Welt hello
und HELLO
werden unterschiedlich behandelt, und so erhalten wir ein Ergebnis von -32.
Eine andere Methode in dieser String-Klasse ignoriert jedoch die Groß- und Kleinschreibung - compareToIgnoreCase()
. Beispiel:
public class CompareToIgnoreCase {
public static void main(String args[]) {
String string1 = "hello";
String string2 = "HELLO";
int result = string1.compareToIgnoreCase(string2);
System.out.println(result);
}
}
Ausgabe:
0
Die Methode des Gleichheitsoperators ==
Es handelt sich um eine Java-String-Vergleichsmethode, die vergleicht, ob sich zwei Objekte an der gleichen Speicherstelle befinden. Beispiel:
public class EqualityOperator {
public static void main(String args[]) {
String oneS = new String("Wow");
String twoS = new String("Wow");
System.out.println(oneS == twoS);
}
}
Ausgabe:
false
Der ==
Operator vergleicht die Objekte oneS
und twoS
, um zu prüfen, ob sie gleich sind. Die beiden Strings, oneS
und twoS
sind unterschiedliche Referenzen und geben daher false zurück. oneS
und twoS
sind zwei verschiedene Objekte. Sie haben aber beide den gleichen Wert in sich.
Die Methode equals()
Dies ist eine Methode, mit der zwei Zeichenketten in Java anhand ihres Wertes verglichen werden können. Die Ausgabe dieser Methode ist entweder true oder false. Wenn die zu vergleichenden Zeichenketten nicht durch den Wert gleich sind, dann gibt die Methode false zurück. Wenn die zu vergleichenden Zeichenketten gleich sind, gibt die Methode true zurück. Zum Beispiel,
public class Equals {
public static void main(String args[]) {
String oneS = new String("Wow");
String twoS = new String("Wow");
System.out.println(oneS.equals(twoS));
}
}
Ausgabe:
true
Die equals()
Methode Case Sensitivity
Die Methode equals()
unterscheidet zwischen Groß- und Kleinschreibung und sieht daher gleiche Wörter mit unterschiedlicher Schreibweise als unterschiedliche Wörter an. Ein Beispiel:
public class Equals {
public static void main(String args[]) {
String oneS = new String("Wow");
String twoS = new String("WOW");
System.out.println(oneS.equals(twoS));
}
}
Ausgabe:
false
Im obigen Fall gibt wow
im Vergleich zu WOW
mit der Methode equals()
false zurück.
Wenn Sie jedoch die Methode equals()
verwenden und die Groß-/Kleinschreibung nicht berücksichtigen wollen, verwenden Sie die Methode equalsToIgnoreCase()
. Für das obige Beispiel würde equalsIgnoreCase()
true zurückgeben.
public class EqualsIgnorecase {
public static void main(String args[]) {
String oneS = new String("Wow");
String twoS = new String("WOW");
System.out.println(oneS.equalsIgnoreCase(twoS));
}
}
Ausgabe:
true
Die Methode contentEquals()
Dies ist ebenfalls eine Java-String-Vergleichsmethode, die einen String-Puffer und einen String vergleicht und entweder false
oder true
zurückgibt. Wenn die Zeichenkette mit dem String-Puffer, mit dem sie verglichen wird, übereinstimmt, gibt die Methode true
zurück. Wenn die Zeichenkette nicht mit dem Zeichenkettenpuffer übereinstimmt, mit dem sie verglichen wird, gibt die Methode false
zurück.
Beispiel:
public class ContentEquals {
public static void main(String args[]) {
String firstS = new String("Here we are");
StringBuffer secondS = new StringBuffer("Here we are");
System.out.println(firstS.contentEquals(secondS));
}
}
Ausgabe:
true
Verwandter Artikel - Java String
- So führen Sie die Konvertierung von String in String-Array in Java durch
- Wie entferne ich eine Unterzeichenkette aus einer Zeichenkette in Java
- So konvertieren Sie Byte-Array in Hex-String in Java
- Wie man Java-String in Byte konvertiert
- Generieren Sie eine zufällige Zeichenkette in Java
- Die Swap-Methode in Java