web-dev-qa-db-fra.com

Comparer String Kotlin

J'étudie le kotlin, mais je suis très déçu, je ne peux pas comparer deux cordes.

Quelle est la bonne façon de comparer.

btn_login.setOnClickListener {
            val login = input_email.text.trim()
            val pass = input_password.text.trim()

            if( login.equals( pass ) ){
                startActivity<MainActivity>()
            }

            if (login?.equals(other = pass)){
                startActivity<MainActivity>()
            }

            if (login == pass){
                startActivity<MainActivity>()
            }

        }

 enter image description here

19
FlipNovid

Selon documentation pour l’égalité structurelle, utilisez ==. Il est traduit en a?.equals(b) ?: (b === null).

Dans ce cas, convertissez votre identifiant de connexion et passez de SpannableStringBuilder à String.

    val login = input_email.text.trim().toString()
29

Voici l'exemple pour faire correspondre les deux chaînes en utilisant kotlin.

Si vous utilisez == (double égal) pour faire correspondre la chaîne, il est alors préférable de comparer l'adresse et de renvoyer le résultat maximal en fonction de la documentation Java.  équivaut à  pour le même 

Si vous voulez utiliser cas égal ignorer puis passe le vrai dans la méthode equals de String

if (s1.equals(s2,true))

autrement, vous pouvez simplement utiliser ceci sans booléen comme 

if (s1.equals(s2,false)) or if (s1.equals(s2))

code compleate est ci-dessous

 fun main(args: Array<String>) {
 val s1 = "abc"
 val s2 = "Abc"
 if (s1.equals(s2,true))
 {
    println("Equal")
 }
 else
 {
    println("Not Equal")
 }
}
8
Maraj Hussain

Covert à la fois le SpannableStringBuilder à string avec toString, cela devrait fonctionner.

val login = input_email.text.trim().toString()
val pass = input_password.text.trim().toString()
if (login == pass){
    startActivity<MainActivity>()
}
5
Shankar Koirala

je sais que c'est beaucoup trop tard, mais en tant que débutant apprenant Kotlin, j'avais les mêmes doutes. 

je suis ensuite tombé sur cet article wonderful qui présente les différents types de comparaison de chaînes de Kotlin et leurs différences. 

en bref == et .equals () peuvent être utilisés pour comparer la valeur de 2 chaînes de caractères dans kotlin. 

j'espère que cela aide

3
vivek86

Avec vérification de cas

String a=.....
String b=.....
if(a==b){
}

IgnoreCase 

if(a.equals(b,false))
1
Santhosh

Essayez cela va sûrement marcher.

val style = buildString { karthik}
val style2 = buildString { karthik }
var result = style.equals(style2)
if(result){//Do something}
0
Karthik Pugal

Essayez la solution suivante, voyez si cela vous aide:

val passStr: String = textView.text.toString()  
if( loginStr.compareTo(passStr, false) ){
            startActivity<MainActivity>()
        }
0
lannyf