Kotlin
语言允许多种方法来检查两个字符串是否相等。
- 使用比较运算符
在 Kotlin 中, ==
用于检查两个对象的结构相等性。如果两个对象具有相同的值,它将返回 true:
fun main(args: Array<String>) {
val str1: String = "Hello World"
val str2: String = "Hello Kotlin"
val str3: String = "Hello World"
println(str1 == str2) // returns false
println(str1 == str3) // returns true
}
===
运算符是判断引用是否相等。如果两个变量指向同一个对象并且具有相同的值,则返回 true。
fun main(args: Array<String>) {
val str1: String = "Hello World"
val str2: String = "Hello World"
val str3 = String("Hello World".toCharArray())
println(str1 === str3) // returns false
println(str1 === str2) // returns true
println(str1 == str2) // returns true
}
当使用 ""
初始化一个新的 String 对象时,它都会自动放入字符串池中。这样的字符串将始终引用同一个对象。
- 使用 equals() 函数
在 Kotlin 中比较两个字符串的另一种方法是使用 equals() 函数。 它区分大小写。
将第二个参数设置为 true 是不区分大小写的字符串比较。
fun main(args: Array<String>) {
val str1: String = "Hello Kotlin"
val str2: String = "Hello World"
val str3: String = "Hello Kotlin"
val str4: String = "hello kotlin"
println(str1.equals(str2)) // returns false
println(str1.equals(str3)) // returns true
println(str1.equals(str4, true)) // returns true
}
equals(other: Any?) 方法在 Any 类中实现,并且可以在任何扩展类中重写。
- 使用 compareTo() 函数
compareTo()
用于检查两个字符串的顺序。它返回 Int 值而不是 Boolean
- 如果两个字符串相等,则返回 0
- 如果字符串小于另一个字符串,则返回负数
- 如果字符串大于另一个字符串,则返回一个正数
此比较区分大小写。对于 Kotlin 中不区分大小写的字符串比较,将第二个参数设置为 true 。
fun main(args : Array<String>) {
val str1: String = "Hello Kotlin"
val str2: String = "hello kotlin"
println(str1.compareTo(str2, false)) // returns -32
println(str1.compareTo(str2, true)) // returns 0
}