java - 如何让 ArrayList<Integer> 和 Scanner 发挥作用?

标签 java casting arraylist java.util.scanner

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/

相关文章:

JavaMail 消息传递异常

java - ArrayList<Integer> 是否允许添加字符串?

c# - C# 'is' 和 'as' 关键字的 Java 等价物是什么?

c - int32_t 到 int64_t(或 float )

java - ArrayList 公共(public)构造函数 - "Constructs an empty list with an initial capacity of ten"- 在哪里?

java - 向 ArrayList<Integer> 实例添加值只能按顺序完成

带有抽象类的 Java 日志记录

java - 收到远程通知后扫描 iBeacon

java - Apache POI 删除行并追加行

C++:为什么 const_cast 是邪恶的?