Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 比较字符串与字符串不起作用_Android_String_If Statement - Fatal编程技术网

Android 比较字符串与字符串不起作用

Android 比较字符串与字符串不起作用,android,string,if-statement,Android,String,If Statement,我有这个代码,对我来说,逻辑似乎是正确的。当输入值.toString()时,它会像应该的那样打印0123456789,因为这是我在editText字段中输入的值。有什么简单的东西我在这里错过了,或者这是罚款,我将不得不看看更远的地方 Editable value = input.getText(); Log.i("Password entered: ", value.toString()); if(value.toString() == "0123456789"){ Log.i("Pas

我有这个代码,对我来说,逻辑似乎是正确的。当输入值.toString()时,它会像应该的那样打印0123456789,因为这是我在editText字段中输入的值。有什么简单的东西我在这里错过了,或者这是罚款,我将不得不看看更远的地方

Editable value = input.getText();
Log.i("Password entered: ", value.toString());
if(value.toString() == "0123456789"){
    Log.i("Password entered: ", "yay it is working!");
} else {
    Log.i("Password entered: ", "it is incorrect");
}

使用
.equals
比较字符串

     if(value.toString().equals("0123456789"))

=测试参考平等性

value.toString().equals("0123456789")
.equals()测试值是否相等

value.toString().equals("0123456789")

将按预期工作。

您可以将字符串与以下代码进行比较

value.toString().equalsIgnoreCase("0123456789");
它会给你最好的结果。

试试这个:

((value.toString()).compareTo("0123456789") == 0){
     //Do somthing here
}

非常感谢你!我现在觉得自己像个白痴!我们每天都学习新的东西@尼古拉斯:是的,所有人都是这样。use也可以使用
.equalsIgnoreCase
。谢谢,我现在一定会记住:)抱歉,我在等待15分钟倒计时:)这比.equals()更难阅读,并且只有当你真的对字符串的顺序感兴趣时才应该使用,而不仅仅是检查是否相等。在我看来,比较两个字符串要比比较equals()方法强得多。我不明白你为什么说它不可读???它不可读,因为每个维护代码的人都必须“解码”部分“compareTo(…)==0”,意思是“等于”。使用“equals()”解决方案时,您可以像阅读英国文学一样阅读代码。此外,很容易错误地编写“compareTo(…)!=0”或“compareTo(…)<0”或其他内容,而没有注意到这一点。对于“equals(…)”这个称呼,这基本上是不可能的。因此,从长远来看,这将避免更多的bug。