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 KlasseString
aufruft (wie der Stringone
im obigen Code), nichtnull
sein 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.