【发布时间】:2015-05-06 12:54:04
【问题描述】:
我在运行代码时遇到这些异常
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at Ideone.main(Main.java:22)
我是 java 新手,无法解决此错误。请帮忙 ! 这是我的代码->
import java.util.*;
import java.lang.*;
import java.io.*;
class etest {
public static void main (String[] args) throws java.lang.Exception{
int n,k;
Scanner in = new Scanner(System.in);
n = in.nextInt();
k = in.nextInt();
BufferedReader input = new BufferedReader( new InputStreamReader(System.in));
//StringTokenizer token = new StringTokenizer(input.readLine());
int total=0;
int values[] = new int[n];
for(int i =0; i<n; i++) {
values[i] = Integer.parseInt(input.readLine());
if ((values[i]%k)==0) {
total++ ;
}
input.close();
}
System.out.println(total);
}
}
我正在使用以下输入示例来运行程序。 非常感谢您的帮助!
7 3
1
51
966369
7
9
999996
11
【问题讨论】:
-
如果您的流已用尽,
input.readLine()返回null -
那么如何克服呢?
-
仅使用
Scanner和类似while (scanner.hasNextInt()) { values[i] = Integer.parseInt(scanner.nextInt()); }的东西会不会容易得多 -
@Jyr 没有必要为
scanner.nextInt()做Integer.parseInt因为已经是int -
你一次尝试了太多的东西......使用
Scanner或BuffredReader保持简单,使用后立即关闭IO流(如果它没有进一步使用)跨度>