equalsIgnoreCase
Kotlin中的Java比较String
值是什么?
我已经用过了,equals
但是它不区分大小写。
Answers:
通常,您不需要寻找替代方法,因为Kotlin会重用现有的Java类型,例如String
。实际上,这些类型映射到Kotlin内部类型。在这种情况下,String
如下所示:
java.lang.String
-> kotlin.String
因此,equalsIgnoreCase
只有在中也没有提供所需的方法时,该方法才可用kotlin.String
。Kotlin设计师决定提供一个更通用的equals
函数,让您使用布尔参数指定不区分大小写。
String
如果确实需要,您可以随时使用Java类(不建议这样做,IntelliJ会抱怨这一点):
("hello" as java.lang.String).equalsIgnoreCase("Hello")
借助扩展功能,我们甚至可以将功能添加到kotlin.String
类中:
fun String.equalsIgnoreCase(other: String) =
(this as java.lang.String).equalsIgnoreCase(other)
根据Kotlin文档:
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
}
}
您可以使用equals但可以指定ignoreCase参数:
"your string".equals("YOUR STRING", ignoreCase = true)