如何修复in.nextLine()返回空字符串数组?

时间:2016-11-30 06:38:31

标签: arrays java.util.scanner

我是非常新的,正在处理一些ap comp sci问题 我想将用户输入存储到字符串的数组列表中,但是当我打印数组我试图填充时,我只是得到像[,,,]这样的东西我该如何解决这个问题?

public static void main(String[] args) {
    // TODO Auto-generated method stub

    System.out.println("Enter words, followed by the word \"exit\"");

    Scanner in = new Scanner(System.in);
    ArrayList<String> words = new ArrayList<String>();
    WordList test = new WordList(words);

    while(!in.next().equals("exit"))
    {
        words.add(in.nextLine());
    }

    System.out.println(words);

1 个答案:

答案 0 :(得分:1)

你遇到的问题是,在while循环条件下,你会读取用户在输入中键入的内容,然后在你读取空白行的内部。

您只需要在while内读取该行,并在用户输入&#39;退出&#39;时中断循环。如下:

public static void main(String[] args) {
    System.out.println("Enter words, followed by the word \"exit\"");
    Scanner in = new Scanner(System.in);
    ArrayList<String> words = new ArrayList<String>();

    while (true) {
        String str = in.nextLine();
        if ("exit".equals(str)) {
            break;
        }
        words.add(str);
    }
    System.out.println(words);
}