当将用户输入打印为一行中的单个单词时,我得到该行中所有单词的打印输出。
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/