0
我想要下面的if语句来比较多个字符串,但是当我比较多个字符串时,它会给我创建的错误消息。下面是不起作用的代码。如何将文本输入与多个字符串进行比较?
的变量是测试= 'c3400553' 和TEST2 = 'c3400554'
if (!uname.getText().toString().matches("[cC][0-9]{7}") ||
!uname.getText().toString().equals(test) ||
!uname.getText().toString().equals(test2)
) {
uname.setError("Incorrect ID Format");
}
下面是一个适用于一个比较的代码。
String test = "c3400553";
...
if (!uname.getText().toString().matches("[cC][0-9]{7}") ||
!uname.getText().toString().equals(test)
) {
uname.setError("Incorrect ID Format");
}
我不明白的问题是
检查条件。确保在需要的地方使用'&&'和'||'。还要检查'!'(不是操作符)的用法。首先,提供一个[mcve] – Idos
uname引用来自用户输入的编辑文本字段 –
“多字符串测试”中的条件将始终返回true。这有点像(x!= 1)|| (x!= 2)其中你真正想要的是(x!= 1)&&(x!= 2)。在你的情况下你可能想要的是:(!uname.getText()。toString()。matches(“ ()。)()[] [cC] [0-9] {7}“)&&(!uname.getText()。toString()。equals(test)&& !uname.getText()。toString()。equals(test2))) –