比较字符串Kotlin

比较字符串Kotlin,kotlin,Kotlin,我在学习kotlin,但我很失望,我不能比较两个字符串 比较的正确方法是什么 btn_login.setOnClickListener { val login = input_email.text.trim() val pass = input_password.text.trim() if( login.equals( pass ) ){ startActivity<MainActi

我在学习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>()
            }

        }
btn_login.setOnClickListener{
val login=input_email.text.trim()
val pass=input_password.text.trim()
if(login.equals(pass)){
星触觉()
}
如果(登录?.equals(其他=通过)){
星触觉()
}
如果(登录==通过){
星触觉()
}
}

根据结构平等使用
=
。它被转换为
a?.equals(b):(b==null)

在您的情况下,将登录名和密码从SpannableStringBuilder转换为字符串

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

使用
toString
SpannableStringBuilder
转换为
string
,这应该可以工作

val login = input_email.text.trim().toString()
val pass = input_password.text.trim().toString()
if (login == pass){
    startActivity<MainActivity>()
}
val login=input_email.text.trim().toString()
val pass=input_password.text.trim().toString()
如果(登录==通过){
星触觉()
}
带有案例检查

String a=.....
String b=.....
if(a==b){
}
无知的

if(a.equals(b,false))

尝试以下解决方案,看看是否有帮助:

val passStr: String = textView.text.toString()  
if( loginStr.compareTo(passStr, false) ){
            startActivity<MainActivity>()
        }
val passStr:String=textView.text.toString()
if(loginStr.compareTo(passStr,false)){
星触觉()
}
1<代码>=:

if(string1==string2){…}

2<代码>等于:

if (editText1.text.toString() == editText2.text.toString() ) {
   println("Should work now! The same value")
}
指示其他对象是否与此对象“相等”。 实施必须满足以下要求: 自反:对于任何非空参考值x,x.equals(x)应 返回true

对称:对于任何非空参考值x和y,x等于(y) 当且仅当y.equals(x)返回true时,应返回true

可传递:对于任何非空参考值x、y和z,如果 x、 equals(y)返回true,y.equals(z)返回true,然后 x、 equals(z)应该返回true

一致:对于任何非空参考值x和y,多个 调用x.equals(y)始终返回true或 返回false,前提是在上的equals比较中未使用任何信息 对象将被修改

3<代码>比较到:

if (editText1.text.toString() == editText2.text.toString() ) {
   println("Should work now! The same value")
}
public-override-fun-compareTo(其他:字符串):Int

将此对象与订单的指定对象进行比较。返回零 如果此对象等于指定的其他对象,则为负 如果小于其他值,则为数字;如果大于其他值,则为正数 而不是其他

按字典顺序比较两个字符串,可以选择忽略大小写 分歧


下面是使用kotlin匹配两个字符串的示例

如果您使用==(double equals)来匹配字符串,那么根据java文档比较address&return maximum time错误的结果是错误的,因此使用equals来匹配相同的字符串

如果要使用equal ignore大小写,请在String的equals方法中传递true

if (s1.equals(s2,true))
另一方面,你可以不用像布尔一样使用它

if (s1.equals(s2,false)) or if (s1.equals(s2))
完整代码如下

 fun main(args: Array<String>) {
 val s1 = "abc"
 val s2 = "Abc"
 if (s1.equals(s2,true))
 {
    println("Equal")
 }
 else
 {
    println("Not Equal")
 }
}
fun main(args:Array){
val s1=“abc”
val s2=“Abc”
如果(s1等于(s2,真))
{
println(“相等”)
}
其他的
{
println(“不相等”)
}
}

试试这个肯定会有用的

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

我知道这太晚了,但作为一名学习Kotlin的新手,我也有同样的疑问

然后我遇到了这个问题,它清楚地表达了Kotlin中的各种字符串比较类型以及它们之间的差异

简而言之,==和.equals()都可以用来比较kotlin中两个字符串的值


希望这能有所帮助

if (editText1.text.toString() == editText2.text.toString() ) {
   println("Should work now! The same value")
}

=
是正确的方法。@Naetmul不适用于我的代码。。。检查图像您可以转换为.toString并使用==运算符进行检查?@ShankarKoirala工作。。。请不要失望:(为什么要“尝试”?一个好的答案总会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,也是为了SO的未来访客。请添加一些描述,让其他人理解。:)我已经用一些解释更新了答案&谢谢你的感谢。:)你的回答不正确。使用
==
运算符比较字符串会在运算符检查结构相等性时自动转换为
.equals()
调用()