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是弱者还是缺乏专业知识使我失望?我对编程很陌生,因此对Lists并不熟悉,因此认为这是一个不错的第一步,但是并没有增加任何东西。它也可以很好地编译,因此不再是语法。也许是铸造问题? 最佳答案
这行得通吗,Samwise大师?
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时,循环才会终止。非整数值或文件的EOF(如果使用的是'java CyclicShiftApp