在 Scala 中比較字串

Suraj P 2023年1月30日
  1. 在 Scala 中使用 equals() 方法比較字串
  2. 在 Scala 中使用 == 運算子比較字串
  3. Java 和 Scala 中的相等檢查
在 Scala 中比較字串

在本文中,我們將學習如何在 Scala 程式語言中比較兩個字串。

如果兩個字串具有相同的字元序列,則認為它們相等。現在,讓我們看看 Scala 中比較字串的不同方法。

在 Scala 中使用 equals() 方法比較字串

在 Scala 中,String 類具有 equals() 方法來檢查兩個字串是否相等。

語法:

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

需要注意的一點是 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 中比較兩個字串。

語法:

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() 方法的一個主要優點是,即使其中一個字串為 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 主要有兩種檢查相等的方法:一種是使用 == 運算子,它嚴格檢查 reference 相等,另一種是 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