Zeichenketten in Scala vergleichen

Suraj P 30 Januar 2023
  1. Strings mit der equals()-Methode in Scala vergleichen
  2. Vergleichen Sie Zeichenfolgen mit dem Operator == in Scala
  3. Gleichheit in Java und Scala
Zeichenketten in Scala vergleichen

In diesem Artikel lernen wir, wie man zwei Strings in der Programmiersprache Scala vergleicht.

Zwei Zeichenketten gelten als gleich, wenn sie die gleiche Zeichenfolge haben. Schauen wir uns nun verschiedene Ansätze in Scala an, um Zeichenfolgen zu vergleichen.

Strings mit der equals()-Methode in Scala vergleichen

In Scala hat die Klasse String die Methode equals(), um die Gleichheit zweier Strings zu prüfen.

Syntax:

string_one.equals(string_two)

Die Funktion gibt true zurück, wenn sowohl string_one als auch string_two gleich sind.

Beispielcode:

object MyClass {

    def main(args: Array[String]) {

        val one = "Tony"
        val two = "Tony"
        val ans = one.equals(two)
        println(ans)

    }
}

Ausgabe:

true

Zu beachten ist, dass bei der Methode equals() zwischen Groß- und Kleinschreibung unterschieden wird, was bedeutet, dass tony und tony unterschiedlich behandelt werden. Um dies zu umgehen, haben wir die Methode equalsIgnoreCase() in der Klasse String, die wir verwenden können.

Beispielcode:

object MyClass {

    def main(args: Array[String]) {

        val one = "Tony"
        val two = "toNy"
        val ans = one.equalsIgnoreCase(two)
        println(ans)

    }
}

Ausgabe:

true

Hinweis: Wir müssen sicherstellen, dass der String, der die Funktion equals() der Klasse String aufruft (wie der String one im obigen Code), nicht null sein darf; Andernfalls erhalten wir eine NullPointerException.

Vergleichen Sie Zeichenfolgen mit dem Operator == in Scala

Wir können die Methode == verwenden, um zwei Strings in Scala zu vergleichen.

Syntax:

string_one == string_two

Die Methode == prüft die Gleichheit von string_one und string_two. Es gibt true zurück, wenn beide Strings gleich sind; andernfalls wird false zurückgegeben.

Beispielcode:

object MyClass {

    def main(args: Array[String]) {

        val one = "tony"
        val two = "tony"
        if(one==two)
           println(true)
        else
        println (false)

    }
}

Ausgabe:

true

Wenn wir wissen, dass bei den Strings zwischen Groß- und Kleinschreibung unterschieden wird, besteht ein großer Vorteil der Verwendung der Methode == gegenüber der Methode equals() darin, dass sie keine NullPointerException auslöst, selbst wenn einer der Strings null ist.

Beispielcode:

object MyClass {

    def main(args: Array[String]) {

        val one = "tony"

        if(one == null)
           println(true)
        else
        println (false)

    }
}

Ausgabe:

false

Im Backend prüft die Methode == zuerst auf null-Werte und ruft dann die Methode equals() mit dem ersten String-Objekt auf, um deren Gleichheit zu prüfen. Aus diesem Grund vergleicht die Methode == Zeichenfolgen nicht unter Berücksichtigung der Groß-/Kleinschreibung.

Beispielcode:

object MyClass {

    def main(args: Array[String]) {
        val one = "tony"
        val two = "TONY"
        if(one == two)
           println(true)
        else
        println (false)

    }
}

Ausgabe:

false

Um diese Situation der Groß- und Kleinschreibung zu umgehen, können wir beide Zeichenfolgen entweder in Groß- oder Kleinbuchstaben umwandeln und sie dann vergleichen.

Beispielcode:

object MyClass {

    def main(args: Array[String]) {
        val one = "tony"
        val two = "TONY"
        if(one.toLowerCase() == two.toLowerCase())
           println(true)
        else
        println (false)

    }
}

Ausgabe:

true

Im obigen Code haben wir beide Strings mit der Methode toLowerCase() in Kleinbuchstaben konvertiert und dann die Methode == verwendet, um sie zu vergleichen.

Gleichheit in Java und Scala

Java und Scala haben unterschiedliche Definitionen, wenn es um Gleichheit geht. Java hat hauptsächlich zwei Möglichkeiten, um auf Gleichheit zu prüfen: Zum einen wird der Operator == verwendet, der streng auf Gleichheit der Referenz prüft, und zum anderen die Methode equals(), die überschrieben werden kann, um den Inhalt von zu prüfen Objekte.

In Scala kann die Methode == verwendet werden, um jeden Typ zu vergleichen, was bedeutet, dass a==b true zurückgibt, wenn sie sich auf dasselbe Objekt beziehen oder denselben Wert enthalten. Und in Scala ist die Methode == eine endgültige Methode, die in jeder Klasse definiert ist.

Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

Verwandter Artikel - Scala String