Котлинский эквивалент Java's equalsIgnoreCase - PullRequest
0 голосов
/ 06 мая 2018

Что является эквивалентом Java equalsIgnoreCase в Котлине для сравнения String значений?

Я использовал equals, но он не чувствителен к регистру.

Ответы [ 4 ]

0 голосов
/ 01 апреля 2019

Согласно документации 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
    }
}
0 голосов
/ 06 мая 2018

Обычно вам не нужно искать альтернативы, поскольку Kotlin повторно использует существующие типы Java, такие как String. На самом деле эти типы отображаются на внутренние типы Kotlin. В случае String это выглядит так:

java.lang.String -> kotlin.String

Следовательно, требуемый метод equalsIgnoreCase будет доступен только в том случае, если он также был указан в kotlin.String, а это не так. Дизайнеры Kotlin решили предоставить более общую функцию equals, которая позволит вам указывать нечувствительность к регистру с помощью логического параметра.

Вы можете использовать класс Java String в любое время, если это действительно необходимо (это не рекомендуется, IntelliJ будет жаловаться на это):

("hello" as java.lang.String).equalsIgnoreCase("Hello")

С помощью функции расширения мы могли бы даже добавить функциональность в класс kotlin.String:

fun String.equalsIgnoreCase(other: String) = 
    (this as java.lang.String).equalsIgnoreCase(other)
0 голосов
/ 23 декабря 2018

@ hluhovskyi ответ правильный, однако, чтобы использовать его на EditText или TextView, используйте следующее -

etPassword.text.toString().equals(etConfirmPassword.text.toString(), ignoreCase = false)
0 голосов
/ 06 мая 2018

Вы можете использовать equals, но указать ignoreCase параметр:

"example".equals("EXAMPLE", ignoreCase = true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...