我目前正在开发一款Android应用,但我遇到了问题。当比较2个字符串时(数组中的1个随机数和输入中的1个字符串,应用程序表示它们不相等。以下是我的一些代码:
Random random = new Random();
int randInt = random.nextInt(words.length);
assignement.setText(words[randInt]);
public void check(){
answer=inputFrame.getText().toString();
if(inputFrame.getText().toString()!= null && answer.equals(assignement)){
assignement.setText(words[randint]);
Toast.makeText(getApplicationContext(),"correct",Toast.LENGTH_SHORT).show();
}else if(inputFrame.getText().toString()==null){
Toast.makeText(getApplicationContext(),"enter text first",Toast.LENGTH_SHORT).show();
}else if(!answer.equals(assignement)){
Toast.makeText(getApplicationContext(),"wrong",Toast.LENGTH_SHORT).show();
}
我希望有人能帮助我
答案 0 :(得分:0)
因为您正在使用
assignement.setText(words[randInt]);
我认为这是一个文本字段或类。因此,您必须更改if
,如下所示:
if(inputFrame.getText().toString()!= null && answer.equals(assignement.getText())){
assignement.setText(words[randint]);
Toast.makeText(getApplicationContext(),"correct",Toast.LENGTH_SHORT).show();
}
请注意我添加了.getText()
方法。
此外,如果案例敏感性对您不重要,我建议您使用equalsIgnoreCase
。
答案 1 :(得分:0)
而不是这种比较
answer.equals(assignement)
你必须使用这个
answer.equals(assignement.getText().toString())
因为answer
是String
变量而assignement
可能是EditText
。
此代码应该可以正常工作。
public void check() {
String answer = inputFrame.getText().toString();
String nameFromArray = assignement.getText().toString();
if (answer.isEmpty()) { // because toString never returns null
Toast.makeText(getApplicationContext(), "enter text first", Toast.LENGTH_SHORT).show();
} else if (answer.equals(nameFromArray)) {
Toast.makeText(getApplicationContext(), "correct", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "wrong", Toast.LENGTH_SHORT).show();
}
}