Scala の文字列を比較する
この記事では、Scala プログラミング言語で 2つの文字列を比較する方法を学習します。
2つの文字列が同じ文字シーケンスを持っている場合、それらは等しいと見なされます。それでは、文字列を比較するための Scala のさまざまなアプローチを見てみましょう。
Scala の equals() メソッドを使用して文字列を比較する
Scala では、String クラスに equals() メソッドがあり、2つの文字列が等しいかどうかをチェックします。
構文:
string_one.equals(string_two)
string_one と string_two の両方が等しい場合、関数は true を返します。
コード例:
object MyClass {
def main(args: Array[String]) {
val one = "Tony"
val two = "Tony"
val ans = one.equals(two)
println(ans)
}
}
出力:
true
注意すべき点の 1つは、equals() メソッドは大文字と小文字を区別することです。つまり、tony と Tony は異なる方法で処理されます。これを克服するために、String クラスに equalsIgnoreCase() メソッドがあり、これを使用できます。
コード例:
object MyClass {
def main(args: Array[String]) {
val one = "Tony"
val two = "toNy"
val ans = one.equalsIgnoreCase(two)
println(ans)
}
}
出力:
true
注:
Stringクラスのequals()関数を呼び出す文字列(上記のコードの文字列oneなど)がnullであってはならないことを確認する必要があります。それ以外の場合は、NullPointerExceptionが発生します。
Scala で == 演算子を使用して文字列を比較する
== メソッドを使用して、Scala の 2つの文字列を比較できます。
構文:
string_one == string_two
== メソッドは、string_one と string_two の同等性をチェックします。両方の文字列が等しい場合は true を返します。それ以外の場合は、false を返します。
コード例:
object MyClass {
def main(args: Array[String]) {
val one = "tony"
val two = "tony"
if(one==two)
println(true)
else
println (false)
}
}
出力:
true
文字列が大文字と小文字を区別することがわかっている場合、equals() メソッドよりも == を使用する主な利点の 1つは、文字列の 1つが null であっても NullPointerException をスローしないことです。
コード例:
object MyClass {
def main(args: Array[String]) {
val one = "tony"
if(one == null)
println(true)
else
println (false)
}
}
出力:
false
バックエンドでは、== メソッドは最初に null 値をチェックし、次に最初の文字列オブジェクトで equals() メソッドを呼び出してそれらが等しいかどうかをチェックします。このため、== メソッドは大文字と小文字を区別して文字列を比較しません。
コード例:
object MyClass {
def main(args: Array[String]) {
val one = "tony"
val two = "TONY"
if(one == two)
println(true)
else
println (false)
}
}
出力:
false
この大文字小文字の区別の状況を克服するために、両方の文字列を大文字または小文字に変換してから比較することができます。
コード例:
object MyClass {
def main(args: Array[String]) {
val one = "tony"
val two = "TONY"
if(one.toLowerCase() == two.toLowerCase())
println(true)
else
println (false)
}
}
出力:
true
上記のコードでは、toLowerCase() メソッドを使用して両方の文字列を小文字に変換してから、== メソッドを使用してそれらを比較しました。
Java と Scala の平等
平等に関しては、Java と Scala の定義は異なります。Java には、主に 2つの方法で同等性をチェックします。1つは == 演算子を使用して参照の同等性を厳密にチェックする方法、もう 1つは equals() メソッドを使用してオーバーライドして、オブジェクト。
Scala では、== メソッドを使用して任意のタイプを比較できます。つまり、a==b は、同じオブジェクトを参照するか、同じ値を含む場合、true を返します。また、Scala では、== メソッドは任意のクラスで定義された final メソッドです。
