在 Scala 中比较字符串
在本文中,我们将学习如何在 Scala 编程语言中比较两个字符串。
如果两个字符串具有相同的字符序列,则认为它们相等。现在,让我们看看 Scala 中比较字符串的不同方法。
在 Scala 中使用 equals()
方法比较字符串
在 Scala 中,String
类具有 equals()
方法来检查两个字符串是否相等。
语法:
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
需要注意的一点是 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 中比较两个字符串。
语法:
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()
方法的一个主要优点是,即使其中一个字符串为 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
方法。