我正在尝试创建一个应用,用户在EditText框中输入单词。然后,他们在另一个框中输入内容,并检查它们是否是同一个单词。这是我使用的代码:
String word = textfield1.getText().toString();
String answer = textfield2.getText().toString();
textfield2.setText(textfield2.getText().toString());
if(word == answer){
Toast.makeText(getApplicationContext(), "correct",
Toast.LENGTH_LONG).show();
}else
Toast.makeText(getApplicationContext(), "incorrect", Toast.LENGTH_LONG).show();
}
然而,它总是说即使它们是两个字符串也不一样。有办法解决这个问题吗?
答案 0 :(得分:3)
您无法将字符串与==
运算符进行比较。
改为使用.equals()
:
if(word.equals(answer)) {
//do whatever
}
答案 1 :(得分:2)
使用String.equalsIgnoreCase
比较两个字符串变量的内容。
if(word.equalsIgnoreCase(answer)){
}
答案 2 :(得分:1)
使用:
String word = textfield1.getText().toString();
String answer = textfield2.getText().toString();
if(answer.contentEquals(word)){
// Do something if equals
}
else{
// Do something if not equals
}
答案 3 :(得分:1)
我认为最好的方法是使用TextUtils:
if(TextUtils.equals(textfield1.getText(),textfield2.getText())){
//do something
}
答案 4 :(得分:0)
而不是
if(word.contentEquals(answer)){
}
使用
if(word.equals(answer))
因为我们无法将字符串与等于(==)运算符
进行比较试试这个::
String word = textfield1.getText().toString();
String answer = textfield2.getText().toString();
if(word.equals(answer)){
Toast.makeText(getApplicationContext(), "correct",
Toast.LENGTH_LONG).show();
}else
Toast.makeText(getApplicationContext(), "incorrect", Toast.LENGTH_LONG).show();
}