在 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
方法。