如何让java扫描程序接受多个字符串输入?

时间:2017-03-11 08:07:28

标签: java

您好,我目前是Java的初学者。下面的代码是一个while循环,它将继续执行,直到用户输入“yes”以外的内容。有没有办法让扫描仪接受多个答案?例如。是的,y,当然,test1,test2等。

import java.util.Scanner;

public class Test {        

    public static void main(String[] args) { 

        Scanner in = new Scanner(System.in);
        String ans = "yes";
        while (ans.equals("yes")) 
        {
            System.out.print("Test ");
            ans = in.nextLine();
        }        
    }
}

3 个答案:

答案 0 :(得分:1)

在表达式中使用运算符

while (ans.equals("yes") || ans.equals("sure") || ans.equals("test1"))  
        {
            System.out.print("Test ");
            ans = in.nextLine();
        } 

但是如果要包含更多选项,最好提供一个将输入作为参数的方法,如果输入被接受,则计算并返回True。

答案 1 :(得分:0)

不要将用户输入与值作为循环条件进行比较?!

分别:将循环条件更改为

while(! ans.trim().isEmpty()) {

换句话说:在用户输入任何内容时保持循环(因此当用户刚进入时循环停止)。

答案 2 :(得分:0)

您正在寻找一种方法来检查给定字符串是否包含在字符串值列表中。有不同的方法可以实现这一点,一种方法是使用ArrayList contains()方法来检查您的用户输入in是否出现在“正面”的列表中。您已定义的答案。

使用ArrayList,您的代码可能如下所示:

import java.util.Scanner;

public class Test { 

    public static void main(String[] args) { 

        ArrayList<String> positiveAnswers = new ArrayList<String>();
        positiveAnswers.add("yes");
        positiveAnswers.add("sure");
        positiveAnswers.add("y");     

        Scanner in = new Scanner(System.in);
        String ans = "yes";

        while (positiveAnswers.contains(ans)) 
        {
            System.out.print("Test ");
            ans = in.nextLine();
        }        
    }
}