如果声明没有正确比较字符串

时间:2015-12-18 14:09:41

标签: java

我有这段代码检查用户输入是否可以接受。但由于某种原因,它总是进入if语句。谁知道为什么?

do{
            System.out.println("Please enter the size of bed " + i + ". (Enter SINGLE, DOUBLE or KING): ");
            bedSize = userInput.next().toUpperCase();
            if (!bedSize.equals("SINGLE") || !bedSize.equals("DOUBLE") || !bedSize.equals("KING")){
                System.out.println("Must enter one of the options; SINGLE, DOUBLE, KING");
            }
        }while(!bedSize.equals("SINGLE") || !bedSize.equals("DOUBLE") || !bedSize.equals("KING"));

3 个答案:

答案 0 :(得分:1)

使用此

if (!bedSize.equals("SINGLE") && !bedSize.equals("DOUBLE") && !bedSize.equals("KING"))

(如果床的大小不同于“SINGLE”不同,“DOUBLE”不同于“KING”)

答案 1 :(得分:0)

作为替代方案,你可以去

List<String> allowed = Arrays.asList("SINGLE", "DOUBLE", "KING");
if(!allowed.contains(bedsize)) {

}

对于以后的扩展,哪种方式更好。假设你想要添加QUEEN大小的床 - 这会导致你的if多少麻烦?

答案 2 :(得分:-2)

好的,现在都解决了。我使用OR运算符而不是AND。感谢您的回复!

if (!bedSize.equals("SINGLE") && !bedSize.equals("DOUBLE") && !bedSize.equals("KING"))