我正在编写一个简单的验证工具。
“|”你看到最后一点不起作用,也不是“||”。我该怎么办?
if (flightClass.equals("1")) {
System.out.println("Good input 1.");
}
if (flightClass.equals("2")) {
System.out.println("Good input 2.");
}
if (!flightClass.equals("1" | "2")) {
System.out.println("Bad input 2.");
答案 0 :(得分:6)
请改用:
if (!flightClass.equals("1") && !flightClass.equals("2")) {
虽然您可以改为使用if ... else
:
if (flightClass.equals("1"))
{
...
}
else if (flightClass.equals("2"))
{
...
}
else
{
...
}
答案 1 :(得分:1)
您可以使用String#matches
方法和正则表达式:
if (!flightClass.matches("1|2")) {
// whatever
}
附注:使用!flightClass.equals("1") || !flightClass.equals("2")
的建议的答案是错误的。正如人们可以很容易地看到这个布尔表达总是true
。 任何字符串不等于“1”或不等于“2”。
这是布尔表:
flightClass !flightClass.equals("1") !flightClass.equals("2") OR result "0" true true true "1" false true true "2" true false true
正确的方法是if (!(flightClass.equals("1") || flightClass.equals("2")))
或De Morgan先生advices:if (!flightClass.equals("1") && !flightClass.equals("2"))
答案 2 :(得分:0)
试试这个
if (!flightClass.equals("1") || !flightClass.equals("2")) {
System.out.println("Bad input 2.");
}