String Comparison
Teil des Abschnitts Grundlagen der Java-Journey von Coddy — Lektion 70 von 73.
In Java ist das Vergleichen von Strings nicht so unkompliziert wie das Vergleichen primitiver Datentypen wie Ganzzahlen oder Zeichen. Sie können den ==-Operator nicht verwenden, um Strings auf Gleichheit zu vergleichen, da Strings Objekte sind und == ihre Speicheradressen vergleichen würde, nicht ihren Inhalt. Stattdessen müssen Sie spezifische Methoden verwenden, die von der String-Klasse bereitgestellt werden, um die tatsächlichen Zeichen innerhalb der Strings zu vergleichen.
Hier sind die primären Methoden zum Vergleichen von Strings:
equals(Object other): Vergleicht den String mit einem anderen Objekt (üblicherweise einem anderen String). Gibttruezurück, wenn die Strings die gleichen Zeichen in der gleichen Reihenfolge haben,falseandernfalls. Diese Methode ist groß-/kleinschreibungssensitiv.
equalsIgnoreCase(String other): Ähnlich wieequals, ignoriert aber die Groß-/Kleinschreibung. Gibttruezurück, wenn die Strings die gleichen Zeichen haben, unabhängig von ihrer Groß-/Kleinschreibung,falseandernfalls.
compareTo(String other): Vergleicht zwei Strings lexikografisch (basierend auf ihren Unicode-Werten). Gibt 0 zurück, wenn die Strings gleich sind, eine negative Zahl, wenn der erste String kleiner als der zweite ist, und eine positive Zahl, wenn der erste String größer als der zweite ist. Diese Methode ist schreibungsempfindlich.
compareToIgnoreCase(String other): Ähnlich wiecompareTo, aber ignoriert die Groß- und Kleinschreibung.
Hier ist ein Beispiel:
String str1 = "hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "world";
boolean eq1 = str1.equals(str2); // wahr
boolean eq2 = str1.equals(str3); // falsch
boolean eq3 = str1.equalsIgnoreCase(str3); // wahr
int cmp1 = str1.compareTo(str2); // 0
int cmp2 = str1.compareTo(str4); // negativer Wert
int cmp3 = str4.compareTo(str1); // positiver Wert
int cmp4 = str1.compareToIgnoreCase(str3); // 0Aufgabe
EinfachErstellen Sie eine Methode namens compareStrings, die zwei Strings als Eingabe nimmt und die folgenden Vergleiche durchführt:
- Überprüft, ob die zwei Strings gleich sind, unter Verwendung von
equals, und druckt das Ergebnis aus. - Überprüft, ob die zwei Strings gleich sind (Groß-/Kleinschreibung ignorierend), unter Verwendung von
equalsIgnoreCase, und druckt das Ergebnis aus. - Vergleicht die zwei Strings unter Verwendung von
compareTound druckt das Ergebnis aus. - Vergleicht die zwei Strings (Groß-/Kleinschreibung ignorierend) unter Verwendung von
compareToIgnoreCaseund druckt das Ergebnis aus.
Beispielausgabe für die Eingabestrings HELLO und hello:
HELLO equals hello: false
HELLO equalsIgnoreCase hello: true
HELLO compareTo hello: -32
HELLO compareToIgnoreCase hello: 0Spickzettel
In Java verwenden Sie spezifische Methoden, um Strings zu vergleichen, nicht den ==-Operator, der Speicheradressen vergleicht:
equals(Object other): Groß-/Kleinschreibung-sensitiver GleichheitsvergleichequalsIgnoreCase(String other): Groß-/Kleinschreibung-unabhängiger GleichheitsvergleichcompareTo(String other): Groß-/Kleinschreibung-sensitiver lexikografischer Vergleich (gibt 0 zurück, wenn gleich, negativ, wenn erster < zweiter, positiv, wenn erster > zweiter)compareToIgnoreCase(String other): Groß-/Kleinschreibung-unabhängiger lexikografischer Vergleich
String str1 = "hello";
String str2 = "HELLO";
boolean eq1 = str1.equals(str2); // false
boolean eq2 = str1.equalsIgnoreCase(str2); // true
int cmp1 = str1.compareTo(str2); // positive value
int cmp2 = str1.compareToIgnoreCase(str2); // 0Probier es selbst
import java.util.Scanner;
public class Main {
public static void compareStrings(String str1, String str2) {
// Schreibe deinen Code hier
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
String str2 = scanner.nextLine();
compareStrings(str1, str2);
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else