158 votes

Equivalent Kotlin de equalsIgnoreCase de Java

Quel est l'équivalent de Java equalsIgnoreCase dans Kotlin pour comparer les valeurs String ?

J'ai utilisé equals mais ce n'est pas insensible à la casse.

275voto

hluhovskyi Points 2231

Vous pouvez utiliser equals mais spécifiez le paramètre ignoreCase :

 "example".equals("EXAMPLE", ignoreCase = true)
 

12voto

Selon la documentation de Kotlin:

 fun String?.equals(
    other: String?, 
    ignoreCase: Boolean = false
): Boolean
 

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/equals.html

Par exemple:

 val name: String = "Hitesh"
when{
name.equals("HITESH", true) -> {
                                // DO SOMETHING
    }
}
 

5voto

Rohan Kandwal Points 2002

La réponse de @ hluhovskyi est correcte, mais pour l'utiliser sur EditText ou TextView , utilisez la suite -

 etPassword.text.toString().equals(etConfirmPassword.text.toString(), ignoreCase = true)
 

1voto

s1m0nw1 Points 21698

Normalement, vous n'avez pas besoin de trouver des alternatives depuis Kotlin réutilise les Java de type String. En fait, ces types sont mappés à Kotlin interne types. Dans le cas d' String il ressemble à ceci:

java.lang.String -> kotlin.String

Par conséquent, la méthode désirée equalsIgnoreCase ne serait disponible que si c'était aussi fourni en kotlin.String, ce qui ne l'est pas. Le Kotlin créateurs ont décidé d'offrir un cadre plus générique equals fonction qui vous permet de spécifier le compte de la casse avec un paramètre booléen.

Vous pouvez utiliser le Java String classe, à tout moment, si c'est vraiment nécessaire (il n'est pas recommandé, IntelliJ va se plaindre à ce sujet):

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

Avec l'aide d'une fonction d'extension, nous pourrions même ajouter de la fonctionnalité à l' kotlin.String classe:

fun String.equalsIgnoreCase(other: String) = 
    (this as java.lang.String).equalsIgnoreCase(other)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X