在 Scala 中比较字符串

Suraj P 2023年1月30日 2022年6月15日
  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 方法。

Author: 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