我在使用AND和OR比较字符串时遇到问题。 如果注释为空并且“规则”等于“ A”或“ B”或“ C”,我想显示一个错误。这意味着,如果“规则”等于“ A”,“ B”或“ C”以外的任何其他值,并且“注释”为空,则可以,但是在其他情况下,它应该显示错误。
此时,&&仅与equals。(“ C”)和isEmpty一起使用。我无法使其与“ A”和“ B”同时使用...
结果是,如果等于A并且注释不为空,则错误仍然出现,对于B相同,并且对于C可以正常使用...
String comment = commentet.getText().toString();
if (rule.equals("A") || rule.equals("B") || rule.equals("C") && TextUtils.isEmpty(commentaire)) {
commentet.setError("Comment is necessary");
return;
}
您知道如何解决此问题吗?
感谢您的帮助。
答案 0 :(得分:6)
这项工作:
String comment = commentet.getText().toString();
if ((rule.equals("A") || rule.equals("B") || rule.equals("C")) && TextUtils.isEmpty(commentaire)) {
commentet.setError("Comment is necessary");
return;
}
基本上将A,B,C支票放在括号内。
答案 1 :(得分:3)
您可以将regex用于或部分:
if(TextUtils.isEmpty(commentaire) && rule.matches("A|B|C")){ ... }
答案 2 :(得分:-1)
尝试一下
String comment = commentet.getText().toString();
if ((rule.equals("A") || rule.equals("B") || rule.equals("C")) && TextUtils.isEmpty(commentaire)) {
commentet.setError("Comment is necessary");
return;
}