如何在执行if / else时停止其他操作?

时间:2017-02-07 20:51:18

标签: java string if-statement contains

我正在使用扫描程序方法让用户输入字符串中的一个单词,但即使用户输入其中一个字符串,else仍然在执行。我该如何预防?

public static void main(String[] args) {         
    while(true) {
        StringBuffer StringBuffer = new StringBuffer();
        Scanner input = new Scanner(System.in);
        System.out.println("Hi, what are you trying to find?");
        System.out.println("mass");
        System.out.println("vol");
        System.out.println("temp");
        System.out.println("sphere");
        System.out.println("density");
        String convert = input.nextLine();
        if (String.valueOf(convert).contains("mass, volume, sphere, temp, density, pound, ounce, ton, gram,")) { 
            StringBuffer.append(String.valueOf(convert));
        } else {
            System.out.println("Wrong input. Try again.");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

反过来,在你的变种字符串上调用contains。正如Clone Talk提到的那样,您不需要String.valueOf,因为convert已经是String(尽管如此,它也适用于它。):

public static void main(String[] args) {
    while (true) {
        StringBuffer StringBuffer = new StringBuffer();
        Scanner input = new Scanner(System.in);
        System.out.println("Hi, what are you trying to find?");
        System.out.println("mass");
        System.out.println("vol");
        System.out.println("temp");
        System.out.println("sphere");
        System.out.println("density");
        String convert = input.nextLine();
        if ("mass, volume, sphere, temp, density, pound, ounce, ton, gram,".contains(convert)) {
            StringBuffer.append(convert);
        } else {
            System.out.println("Wrong input. Try again.");
        }
    }
}

发表评论:

  

为什么if(convert.contains("...."))不起作用?

最简单的方法是查看the documentation of String.contains当且仅当此字符串包含指定的char值序列时才返回true 。

问题(不在我的回答中)的原始示例中的

此字符串convert,可以是"mass"或{ {1}}等等;

指定的char值序列是长字符串"volume"

那么,例如, "mass, volume, ..."可以包含"mass"?确实是另一种方式:"mass, volume, etc."

  

HashSet.contains会更高效

在这个例子中,字符串看起来不会大到足以感觉到性能提升,但一般来说这是一个好点,特别是如果可能的输入数量不小以及可读性和可维护性。你可以这样:

"mass, volume, etc.".contains("mass") == true