我正在学习kotlin,但我很失望,我无法比较两个字符串 .
比较的正确方法是什么 .
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>()
}
}
8 回答
尝试以下解决方案,看看它是否有帮助:
试试这肯定会起作用 .
根据documentation对于结构平等使用
==
. 它被翻译为a?.equals(b) ?: (b === null)
.在你的情况下,转换登录并从SpannableStringBuilder传递给String .
以下是使用kotlin匹配两个字符串的示例 .
如果您使用==(double equals)来匹配字符串,那么它将根据java文档比较地址和返回最大错误结果,因此请使用 equals
如果要使用 equal ignore case ,则在String的equals方法中传递 true
另外,你可以在没有布尔值的情况下使用它
补充代码如下
使用
toString
将SpannableStringBuilder
转换为string
,这应该可行 .1. == :
if ( string1 == string2 ){...}
2. equals :
3. compareTo :
public override fun compareTo(other: String): Int
通过案例检查
IGNORECASE
我知道这太晚了,但作为一个学习Kotlin的新手,我有同样的疑虑 .
然后我遇到了这个wonderful article,它清楚地表达了Kotlin中的各种字符串比较类型以及它们之间的差异 .
简而言之,==和.equals()都可用于比较kotlin中2个字符串的值 .
希望这会有所帮助