在 Kotlin,比较 String值的等价物是什么?
String
我使用了 equals,但它并非不区分大小写。
equals
您可以使用 equals,但指定 ignoreCase参数:
ignoreCase
"example".equals("EXAMPLE", ignoreCase = true)
通常,您不需要找到替代方案,因为 Kotlin 重用了现有的 Java 类型,如 String。实际上,这些类型映射到 Kotlin 内部类型。String的情况是这样的:
- > kotlin.String
kotlin.String
因此,所需的方法 equalsIgnoreCase只有在 kotlin.String中也提供的情况下才可用,而 kotlin.String不提供。Kotlin 的设计者决定提供一个更通用的 equals函数,让您用一个布尔参数指定不区分大小写。
equalsIgnoreCase
如果真的有必要,你可以在任何时候使用 JavaString类(不推荐这样做,IntelliJ 会抱怨这一点) :
("hello" as java.lang.String).equalsIgnoreCase("Hello")
在一个扩展函数的帮助下,我们甚至可以将这个功能添加到 kotlin.String类中:
fun String.equalsIgnoreCase(other: String) = (this as java.lang.String).equalsIgnoreCase(other)
@ hluhovskyi 的回答是正确的,但是在 EditText或 TextView上使用它,请使用以下-
EditText
TextView
etPassword.text.toString().equals(etConfirmPassword.text.toString(), ignoreCase = true)
根据科特林文件:
fun String?.equals( other: String?, ignoreCase: Boolean = false ): Boolean
Https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/equals.html
例如:
val name: String = "Hitesh" when{ name.equals("HITESH", true) -> { // DO SOMETHING } }
对我来说,
string1.contains(string2, ignoreCase = true)
这招对我很管用。 因为我在这里使用了一个搜索函数。