Scala の文字列を比較する

Suraj P 2023年1月30日
  1. Scala の equals() メソッドを使用して文字列を比較する
  2. Scala で == 演算子を使用して文字列を比較する
  3. Java と Scala の平等
Scala の文字列を比較する

この記事では、Scala プログラミング言語で 2つの文字列を比較する方法を学習します。

2つの文字列が同じ文字シーケンスを持っている場合、それらは等しいと見なされます。それでは、文字列を比較するための Scala のさまざまなアプローチを見てみましょう。

Scala の equals() メソッドを使用して文字列を比較する

Scala では、String クラスに equals() メソッドがあり、2つの文字列が等しいかどうかをチェックします。

構文:

string_one.equals(string_two)

string_onestring_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() メソッドは大文字と小文字を区別することです。つまり、tonyTony は異なる方法で処理されます。これを克服するために、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_onestring_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 メソッドです。

著者: 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

関連記事 - Scala String