我能够将整数数组转换为字符串。
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)的值。
答案 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)
可能对您有所帮助的三件事(第三件事只是一项惯例,但却是一项重要的议案):
equals
方法比较对象(字符串是对象)。例如 - if (Number.equals("1 1 0 0") )
[
和]
- if (Number.equals("[1 1 0 0]") )
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");
}