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>()
}
}
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()
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")
}
}
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>()
}
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
Avec vérification de cas
String a=.....
String b=.....
if(a==b){
}
IgnoreCase
if(a.equals(b,false))
Essayez cela va sûrement marcher.
val style = buildString { karthik}
val style2 = buildString { karthik }
var result = style.equals(style2)
if(result){//Do something}
Essayez la solution suivante, voyez si cela vous aide:
val passStr: String = textView.text.toString()
if( loginStr.compareTo(passStr, false) ){
startActivity<MainActivity>()
}