在Kotlin中比較字符串,以下是一些可能的方法:
1、使用“ ==”運(yùn)算符
2、使用compareTo()擴(kuò)展函數(shù)
我們將使用 = = 運(yùn)算符來(lái)比較 Kotlin 的兩個(gè)字符串。根據(jù) Kotlin 的 Equality 文檔,= = 操作符用于結(jié)構(gòu)相等。
在 Kotlin語(yǔ)言中: a==b 被隱式轉(zhuǎn)換為 a?.equals(b) ?: (b === null)
確保兩個(gè)值a和b均為字符串類型。 如果不是字符串,那么需要在比較之前將它們轉(zhuǎn)換為字符串。
/** * Kotlin示例,比較兩個(gè)字符串是否相等*/ fun main(args: Array<String>) { var a: String = "kotlin is easy" var b: String = "kotlin is" + " easy" if(a==b){ println("字符串 '$a' 和 '$b' 相等。") } else { println("字符串 '$a' 和'$b' 不相等。") } b = "Kotlin runs on JVM" if(a==b){ println("字符串 '$a' 和 '$b' 相等。") } else { println("字符串 '$a' 和 '$b' 不相等。") } }
輸出結(jié)果:
字符串 'kotlin is easy' 和 'kotlin is easy' 相等。 字符串 'kotlin is easy' 和 'Kotlin runs on JVM' 不相等。
Kotlin為String提供了compareTo()擴(kuò)展函數(shù)。
compareTo()函數(shù)的語(yǔ)法如下:
fun String.compareTo( other: String, ignoreCase: Boolean = false ): Int
其他:String 是強(qiáng)制性參數(shù)。ignoreCase 是可選的。
該函數(shù)返回整數(shù)值。
返回值 | 描述 |
---|---|
0 | 這兩個(gè)字符串相等。 |
負(fù)整數(shù) | 如果該字符串小于另一個(gè)字符串 |
正整數(shù) | 如果該字符串大于另一個(gè)字符串 |
/** * Kotlin示例,比較兩個(gè)字符串 */ fun main(args: Array<String>) { var a: String = "apple" var b: String = "apple" var result = a.compareTo(b) if(result==0){ println("字符串 '$a' 和 '$b' 相等") } else if(result < 0){ println("'$a' 小于 '$b' 字符數(shù).") } else{ println("'$a' 小于 '$b' 字符數(shù).") } b = "banana" result = a.compareTo(b) if(result==0){ println("字符串 '$a' 和 '$b' 相等") } else if(result < 0){ println("'$a' 小于 '$b' 字符數(shù).") } else{ println("'$a' 小于 '$b' 字符數(shù).") } // compareTo 忽略大小寫,ignoreCase參數(shù) 為 true a = "appLE" b = "aPple" println("\n忽略大小寫...") result = a.compareTo(b, true) // ignoreCase = true if(result==0){ println("字符串 '$a' 和 '$b' 相等") } else if(result < 0){ println("'$a' 小于 '$b' 字符數(shù).") } else{ println("'$a' 小于 '$b' 字符數(shù).") } }
輸出結(jié)果:
字符串 'apple' 和 'apple' 相等 'apple' 小于 'banana' 字符數(shù). 忽略大小寫... 字符串 'appLE' 和 'aPple' 相等
本章在示例程序的幫助下,學(xué)習(xí)使用 == 運(yùn)算符 和 CompareTo()函數(shù)比較兩個(gè)字符串。