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))) –