如何在android studio中比较输入文本和字符串数组?

时间:2016-04-14 16:20:35

标签: java android arrays android-studio android-edittext

我是应用程序开发的新手,我在android studio中编码有问题。我想比较输入文本和字符串数组中的字符串。出于某种原因,它不会起作用。当我在eclipse中尝试java代码时,它可以工作。

我已经运行了调试器,输入消息是" Banana"。调试器还显示message =" Banana"当它在CheckAnswer(消息)中时。但由于某种原因,该功能不会返回"正确"。它返回"错误"

我希望有人可以帮助我。

这是我的代码:

public void sendMessage(View view) {
    // Do something in response to button
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    String message2 = CheckAnswer(message);
    intent.putExtra(CORRECT_MESSAGE, message2);
    startActivity(intent);

}

public static String CheckAnswer(String string) {
    String rightanswer[] = {"Apple", "Banana", "Coconut"};
    String answer = null;
    for (int i = 0; i <= rightanswer.length-1; i++) {
        if (string == rightanswer[i]) {
            answer =  "Right!!";
            break;
        }
        else answer = "Wrong.";
    }
    return answer;
}

2 个答案:

答案 0 :(得分:2)

比较两个字符串的正确方法是使用equals()函数而不是==

所以改变:

       if (string == rightanswer[i]) {
            answer =  "Right!!";
            break;
        }

为:

        if (string.equals(rightanswer[i])) {
            answer =  "Right!!";
            break;
        }

答案 1 :(得分:1)

在比较Java中的字符串时,最好使用String的equals()方法,如下所示:

if(someValue.equals(somethingElse){}

我希望这有帮助!