File fil = new File("Tall.txt");
FileReader inputFil = new FileReader(fil);
BufferedReader in = new BufferedReader(inputFil);
int [] tall = new int [100];
String s =in.readLine();
while(s!=null)
{
int i = 0;
tall[i] = Integer.parseInt(s); //this is line 19
System.out.println(tall[i]);
s = in.readLine();
}
in.close();
Run Code Online (Sandbox Code Playgroud)
我试图使用文件"Tall.txt"将包含在其中的整数写入名为"tall"的数组中.它在某种程度上这样做,但是当我运行它时,它会抛出以下异常(:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at BinarySok.main(BinarySok.java:19)
Run Code Online (Sandbox Code Playgroud)
为什么要这样做,我该如何删除它?在我看来,我将文件作为字符串读取,然后将其转换为int,这不是非法的.
Jul*_*ier 43
你可能想做这样的事情(如果你在java 5及以上)
Scanner scanner = new Scanner(new File("tall.txt"));
int [] tall = new int [100];
int i = 0;
while(scanner.hasNextInt()){
tall[i++] = scanner.nextInt();
}
Run Code Online (Sandbox Code Playgroud)
您的文件中必须有一个空行.
您可能希望将parseInt调用包装在"try"块中:
try {
tall[i++] = Integer.parseInt(s);
}
catch (NumberFormatException ex) {
continue;
}
Run Code Online (Sandbox Code Playgroud)
或者只是在解析之前检查空字符串:
if (s.length() == 0)
continue;
Run Code Online (Sandbox Code Playgroud)
请注意,通过i
在循环内初始化索引变量,它始终为0.您应该在while
循环之前移动声明.(或使其成为for
循环的一部分.)
归档时间: |
|
查看次数: |
170862 次 |
最近记录: |