import java.util.*;
public class CyclicShiftApp{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<Integer>();
while(scan.hasNextInt()){
list.add(scan.nextInt());
}
Integer[] nums = new Integer[list.size()];
nums = list.toArray(nums);
for(int i = 0;i < nums.length; i++){
System.out.println(nums[i]);
}
}
感谢穷人调试,我发现 while(scan.hasNextInt())
实际上没有添加任何东西。可能出了什么问题?是我的 google-fu 很弱还是缺乏专业知识让我失望?我对编程相当陌生,对列表不熟悉,所以认为这将是一个很好的第一步,但有些事情并没有加起来。它也可以很好地编译,所以它不是语法(不再)。也许是选角问题?
最佳答案
这行得通吗,山姆怀斯大师?
import java.util.*;
public class CyclicShiftApp{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<Integer>();
System.out.print("Enter integers please ");
System.out.println("(EOF or non-integer to terminate): ");
while(scan.hasNextInt()){
list.add(scan.nextInt());
}
Integer [] nums = list.toArray(new Integer[0]);
for(int i = 0; i < nums.length; i++){
System.out.println(nums[i]);
}
}
}
我假设您需要将列表作为数组是有原因的,否则不需要转换为数组。正如 Jon Skeet 在评论中提到的那样,只有当流没有下一个 int 时,循环才会终止,即。如果您使用的是“java CyclicShiftApp < input_file.txt”,则为非整数值或文件的 EOF。
关于java - 如何让 ArrayList<Integer> 和 Scanner 发挥作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16098134/