java - 为什么 Java 不打印行中的所有单词(当单词添加到 ArrayList 时)?

标签 java arraylist println

当将用户输入打印为一行中的单个单词时,我得到该行中所有单词的打印输出。

System.out.println(userInput.next());

但是,当我将单个单词添加到 ArrayList 时,我似乎得到了随机单词:

 al.add(userInput.next());

有人可以向我解释一下发生了什么事吗?

谢谢。

这是代码的完整副本:

import java.util.*;


public class Kwic {
    public static void main(String args[]){

        Scanner userInput = new Scanner(System.in);
        ArrayList<String> al = new ArrayList<String>();


        while(userInput.hasNext()){
            al.add(userInput.next());
            System.out.println(userInput.next());
        }


    }
}

最佳答案

while(userInput.hasNext()){
    al.add(userInput.next());   //Adding userInput call to ArrayList
    System.out.println(userInput.next());  //Printing another userInput call
}

没有打印存储在ArrayList中的值,但实际上是对 userInput.next() 的另一次调用

修订

@谢尔顿这对我有用。

public static void main(String[] args) {
    Scanner userInput = new Scanner(System.in);
    ArrayList<String> al = new ArrayList<String>();
    while(userInput.hasNext()){
        al.add(userInput.next());
        System.out.println(al);  //LINE CHANGED FROM YOUR QUESTION
    }

}

我用输入测试了你的代码 1 2 3 4 5 6 7 8 9 0

然后我按下回车键并得到:

2 4 6 8 0

userInput.next() 在添加到 ArrayList 的输入和 System.out.println 捕获的输入之间交替

关于java - 为什么 Java 不打印行中的所有单词(当单词添加到 ArrayList 时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12554870/

相关文章:

java - 错误: Exception in thread "JavaFX Application Thread"

java - 带投影的 Hibernate Criteria 不选取数据

java - 如何返回索引号

java - 如何在android中以表格格式显示ArrayList数据

java - Hamcrest - 打印到控制台

java - 如何在多行输出 Java 中打印字符串

java - 为什么netty的handler成员变量在使用new handler()处理请求时没有重置

java - Netbeans 7.4 调试 session 期间输出中未找到堆栈跟踪

java - 2D ArrayList Java 中元素的索引

java - 打印数组的总和