我想查看我的输入是否为空?" Y"是否" X"
while (weiterInput.isEmpty() || !weiterInput.equals("X") || !weiterInput.equals("Y")) {..}
如果我输入" X"或" Y"它没有像它应该的那样退出循环。
答案 0 :(得分:1)
此循环永远不会终止,因为weiterInput
永远不会等于“X”和“Y”,因此!weiterInput.equals("X")
或!weiterInput.equals("Y")
始终会true
你需要:
while (weiterInput.isEmpty() ||
(!weiterInput.equals("X") && !weiterInput.equals("Y"))) {
}
答案 1 :(得分:1)
我认为你所需要的就是这个:
while (!weiterInput.matches("[XY]?")){...}
编辑:
我还可以用较少的编码测试小写和其他变体(是,YES,是,y,Y)
在这种情况下,只需将正则表达式更改为:
if (!weiterInput.matches("(?i)(yes|y)?")){
请注意,(?i)
将匹配不区分大小写,因此请不要担心是,是,Y ..
答案 2 :(得分:0)
你混淆了你的逻辑。
如果你想检查它是否为空或等于X或等于Y,那么它将是
(weiterInput.isEmpty() || weiterInput.equals("X") || weiterInput.equals("Y"))
如果你想要相反,只需否定整个表达式
(!(weiterInput.isEmpty() || weiterInput.equals("X") || weiterInput.equals("Y")))