当前位置: 代码迷 >> J2EE >> Scanner循环有关问题
  详细解决方案

Scanner循环有关问题

热度:207   发布时间:2016-04-17 23:31:35.0
Scanner循环问题
static int[] i=null;
public static void main(String[] args){
int j=0;
Scanner in = new Scanner(System.in);
while(in.hasNextInt()){
i[j]=in.nextInt();
j++;
}
in.close();
}

为什么在运行过程中出现Exception in thread "main" java.lang.NullPointerException
at Kalazi.main(Kalazi.java:8)
------解决思路----------------------
空指针是因为int[] i没有初始化
------解决思路----------------------
不知掉数组大小的话,可以使用动态数组,也就是ArrayList
ArrayList 可以设置容量的大小,也可以根据需要自动扩容,解决了不知道数组大小的问题
static int[] i=null; 改为 
List<Integer> list = new ArrayList<Integer>();
对应 i[j]=in.nextInt(); 改为 
list.add(in.nextInt());
------解决思路----------------------
引用:
Quote: 引用:

楼主是在做编程竞赛题吗,像这种情况一般会事先分配个比较大的数组,或者有的题目第一个数字会告诉后面数据的多少,然后动态分配数组。
数组是必须要先new才能使用的。

是的,但是老是错误,感觉自己做对了,不过,编译不过,在Eclipse中是对的,谢了!

这样:
public static final int maxn = 100000;//根据题目要求确定具体大小.
public static int[] i = new int[maxn];
  相关解决方案