我是应用程序开发的新手,我在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;
}
答案 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){}
我希望这有帮助!