我不断得到一个我的字符串,我不知道为什么。编译时它似乎工作正常,我无法找出代码的错误导致它无法运行。NumberFormatException这是显示内容的屏幕截图。https://imgur.com/a/LfM5SDA如上所述,我找不到我的代码不起作用的任何原因。对我来说,这一切都是正确的,并且运行良好,直到最后几种方法出现。public static int loadArray(int[] numbers) { System.out.print("Enter the file name: "); String fileName = keyboard.nextLine(); File file = new File(fileName); BufferedReader br; String line; int index = 0; try { br = new BufferedReader(new FileReader(file)); while ((line = br.readLine()) != null) { numbers[index++] = Integer.parseInt(line); if(index > 150) { System.out.println("Max read size: 150 elements. Terminating execution with status code 1."); System.exit(0); } } } catch (FileNotFoundException ex) { System.out.println("Unable to open file " + fileName + ". Terminating execution with status code 1."); System.exit(0); }catch(IOException ie){ System.out.println("Unable to read data from file. Terminating execution with status code 1."); System.exit(0); } return index; }我想使用我的开关能够在数组中找到不同的值,但我甚至无法正确加载数组文件。
2 回答
智慧大石
TA贡献1946条经验 获得超3个赞
在应用工作期间,你将获得“数字格式异常”,因为这是运行时异常,它旨在正常工作。
您的解决方案的问题,您尝试从文件中的整行解析int。
“123, 23, -2, 17” 不是一个整数。因此,您应该执行以下操作:numbers[index++] = Integer.parseInt(line);
String[] ints = line.split(", ");
for(i = 0; i < ints.length; i++ ){
numbers[index++] = Integer.parseInt(ints[i]);
}
aluckdog
TA贡献1847条经验 获得超7个赞
问题是你正在阅读一整行。
while ((line = br.readLine()) != null)
不能基于带有空格的整行来分析整数。
您有两种选择:
在调用方法并按空格拆分它之前,请先阅读该行,然后将其传递到方法中。
String[]
loadArray
省略该参数并按空格拆分行。然后,您可以循环访问该数组的内容,并根据需要将每个内容转换为 int。
loadArray
添加回答
举报
0/150
提交
取消