Zeichenketten in Scala vergleichen
-
Strings mit der
equals()-Methode in Scala vergleichen -
Vergleichen Sie Zeichenfolgen mit dem Operator
==in Scala - Gleichheit in Java und Scala
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 KlasseStringaufruft (wie der Stringoneim obigen Code), nichtnullsein darf; Andernfalls erhalten wir eineNullPointerException.
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.
