为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我不断收到一个 java.lang.数字格式例外,尽管它编译正确?

为什么我不断收到一个 java.lang.数字格式例外,尽管它编译正确?

慕沐林林 2022-09-28 09:47:50
我不断得到一个我的字符串,我不知道为什么。编译时它似乎工作正常,我无法找出代码的错误导致它无法运行。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]);

}


查看完整回答
反对 回复 2022-09-28
?
aluckdog

TA贡献1847条经验 获得超7个赞

问题是你正在阅读一整行。

 while ((line = br.readLine()) != null)

不能基于带有空格的整行来分析整数。

您有两种选择:

  • 在调用方法并按空格拆分它之前,请先阅读该行,然后将其传递到方法中。String[]loadArray

  • 省略该参数并按空格拆分行。然后,您可以循环访问该数组的内容,并根据需要将每个内容转换为 int。loadArray


查看完整回答
反对 回复 2022-09-28
  • 2 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信