在if语句中读取字符串时遇到问题

时间:2011-11-07 18:18:34

标签: java android

我能够将整数数组转换为字符串。

    if (tempArray1[6] == true) {
        num[0] = 1;
    }
    if (tempArray2[6] == true) {
        num[1] = 1;
    }
    if (tempArray3[6] == true) {
        num[2] = 1;
    }
    if (tempArray4[6] == true) {
        num[3] = 1;
    }

    Number = Arrays.toString(num).replace(",", "");
    Log.e("NUMBER", "number is :" + Number);

Log语句的结果为

11-07 10:03:17.577:错误/号码(990):号码是:[1 1 0 0]

现在我尝试使用if语句来检查可能的结果:

    if (Number == "1 1 0 0") {
        Log.e("NOTIFY", "1100");
       notificationMessage = "Input Wire 1 and 2";
    }

但由于某种原因,它永远不会发现这个if语句是真的,即使log表示Number是1100.有人可以帮助我能够在if语句中读取Number(string)的值。

4 个答案:

答案 0 :(得分:2)

您必须使用==来比较使用equals()和数字的字符串 而你在这里做的事既不是:

if (Number == "1 1 0 0")

答案 1 :(得分:2)

您在[中遗失了]"1 1 0 0",而您正在使用==代替.equals来比较字符串。

应该是:

if (Number.equals("[1 1 0 0]"))

答案 2 :(得分:2)

可能对您有所帮助的三件事(第三件事只是一项惯例,但却是一项重要的议案):

  1. 使用equals方法比较对象(字符串是对象)。例如 - if (Number.equals("1 1 0 0") )
  2. 您忘记了[] - if (Number.equals("[1 1 0 0]") )
  3. 使用小写字母启动变量名称:if (number.equals("[1 1 0 0]") )

答案 3 :(得分:1)

也许这将是更高效的代码:

        StringBuilder resultNumber = new StringBuilder();
        if (tempArray1[6]) {
            resultNumber.append(1);
        } else {
            resultNumber.append(0);
        }
        if (tempArray2[6]) {
            resultNumber.append(1);
        } else {
            resultNumber.append(0);
        }
        if (tempArray3[6]) {
            resultNumber.append(1);
        } else {
            resultNumber.append(0);
        }
        if (tempArray4[6]) {
            resultNumber.append(1);
        } else {
            resultNumber.append(0);
        }

        try {
            int resultImpl = Integer.valueOf(resultNumber.toString());
            if (resultImpl == 1100) {
                Log.e("NOTIFY", "1100");
                notificationMessage = "Input Wire 1 and 2";
            }
        } catch (NumberFormatException ex) {
            System.out.println("not number");
        }