Menu
Coddy logo textTech

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). Gibt true zurück, wenn die Strings die gleichen Zeichen in der gleichen Reihenfolge haben, false andernfalls. Diese Methode ist groß-/kleinschreibungssensitiv.
  • equalsIgnoreCase(String other): Ähnlich wie equals, ignoriert aber die Groß-/Kleinschreibung. Gibt true zurück, wenn die Strings die gleichen Zeichen haben, unabhängig von ihrer Groß-/Kleinschreibung, false andernfalls.
  • 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 wie compareTo, 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); // 0
challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode namens compareStrings, die zwei Strings als Eingabe nimmt und die folgenden Vergleiche durchführt:

  1. Überprüft, ob die zwei Strings gleich sind, unter Verwendung von equals, und druckt das Ergebnis aus.
  2. Überprüft, ob die zwei Strings gleich sind (Groß-/Kleinschreibung ignorierend), unter Verwendung von equalsIgnoreCase, und druckt das Ergebnis aus.
  3. Vergleicht die zwei Strings unter Verwendung von compareTo und druckt das Ergebnis aus.
  4. Vergleicht die zwei Strings (Groß-/Kleinschreibung ignorierend) unter Verwendung von compareToIgnoreCase und 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: 0

Spickzettel

In Java verwenden Sie spezifische Methoden, um Strings zu vergleichen, nicht den ==-Operator, der Speicheradressen vergleicht:

  • equals(Object other): Groß-/Kleinschreibung-sensitiver Gleichheitsvergleich
  • equalsIgnoreCase(String other): Groß-/Kleinschreibung-unabhängiger Gleichheitsvergleich
  • compareTo(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); // 0

Probier 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);
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen