比较字符串android app

时间:2015-12-20 12:09:06

标签: java android string compare

我目前正在开发一款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();

    }

我希望有人能帮助我

2 个答案:

答案 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())

因为answerString变量而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();
    }
}