简化条件

时间:2013-12-19 05:02:14

标签: java android if-statement

所以我的应用程序中有一个EditText,用户在aswer中输入。我的问题是,当我检查输入并使用条件来检查它是否是正确答案时,它会变得过于复杂。 这是我的代码,以便您更好地理解我的问题

if (cuenta == 0) {
    if (inputbox.getText().toString().equals("Ottawa")) {
        resultadolabel.setText("Correcto");}
    else if (inputbox.getText().toString().equals("Ottawa ")) {
        resultadolabel.setText("Correcto");}
    else if (inputbox.getText().toString().equals("ottawa")) {
        resultadolabel.setText("Correcto");}
    else if (inputbox.getText().toString().equals("ottawa ")) {
        resultadolabel.setText("Correcto");}
    else {resultadolabel.setText("Respuesta correcta: Ottawa");}
}

正如你所看到我要求加拿大的首都,但我希望用户能够以4种不同的方式写文本(大写字母带有空格,小写字母是没有空格的结束等。)。 在我的问题出现的地方,是否有办法制作某种“如果(这种情况,或其他条件或其他条件等等)

我真的需要一种方法来简化我的代码,因为它会非常长,特别是有口音和东西的国家。

6 个答案:

答案 0 :(得分:3)

您可以使用equalsIgnoreCase()trim(),例如:

if(inputbox.getText().toString().trim().equalsIgnoreCase("Ottawa")){
    resultadolabel.setText("Correcto");
}

答案 1 :(得分:0)

您可以使用toLowerCase()trim()

if (inputbox.getText().toString().toLowerCase().trim().equals("ottawa"))

答案 2 :(得分:0)

这就是我要做的事情:

if (inputbox.getText().trim().toUpperCase().equals("OTTAWA")) { ...

这显然也允许诸如“OtTaWa”和“ottawA”之类的排列,但你实在无法一个接一个地检查所有排列。可能会引入第一个字母必须大写的规则?

请注意,您不需要toString() getText()的返回 - 它已经是一个字符串。

答案 3 :(得分:0)

public static void main(String[] args) {
        String s="Ottawa ";
        s=s.trim();
        if(s.equalsIgnoreCase("ottawa"))
        {
            resultadolabel.setText("Correcto");
        }
            else {resultadolabel.setText("Respuesta correcta: Ottawa");} 
    }

答案 4 :(得分:0)

尝试使用trim()的条件返回字符串的副本,省略前导和尾随空格。并使用忽略案例考虑的equalsIgnoreCase()

if (inputbox.getText().toString().trim().equalsIgnoreCase("ottawa")) {
                    resultadolabel.setText("Correcto");
} else {resultadolabel.setText("Respuesta correcta: Ottawa");}

答案 5 :(得分:0)

使用正则表达式:

if(inputbox.getText().toString().matches("^[oO]ttawa\\s?")){
    resultadolabel.setText("Correcto");
} else{
    resultadolabel.setText("Respuesta correcta: Ottawa");
}