gpt4 book ai didi

java - Java中如何解决这个异常?

转载 作者:行者123 更新时间:2023-12-01 18:33:37 25 4
gpt4 key购买 nike

我的代码是这样的

 import java.io.File;
import java.util.Scanner;

public class ReadFile{
public static void main(String[] args)throws Exception {
Scanner scan = new Scanner(new File("input.txt"));
int[][] arr = new int[4][4];

for(int t = 1; t <= 2; t++){
int firstRow = scan.nextInt();
System.out.println(firstRow);
for(int i = 0; i <= 4; i++){
if(scan.hasNextLine()){
String[] splited = scan.nextLine().split("\\s");
for(String f : splited)
System.out.println(f);
for(int g = 0; g <= 4; g++){
arr[i][g] = Integer.parseInt(splited[i]); // at this point the exception is being thrown
}
}
}

}
}

通过它,我尝试读取数据按以下格式排列的文件

 2
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
3
1 2 5 4
3 11 6 15
9 10 7 12
13 14 8 16

基本上,我想读取第一个数字 2(一行中的单个值)和 3(也是从顶部开始的第 6 行中的单个值)并将它们存储在 firstRowNum 变量和 secondaryNumRow 变量中,并将其余数字存储在两个 4X4 中矩阵。但是当我运行代码时,我收到以下异常

  Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
at java.lang.Integer.parseInt(Integer.java:527)
at ReadFile.main(ReadFile.java:20)

我认为我没有正确设置循环。

谢谢

最佳答案

替换

splited[i]

f

作为 Integer.parseInt() 的参数。另外,不要对 g 使用另一个循环指数;使用

arr[i][g++]

并在内部foreach循环之前将g初始化为0。或者,按原样使用基于 g 的循环,但替换 splited[i]splited[g] .

您还有其他问题,例如使用

i <= 4

作为循环的上限条件,但数组的索引范围为 0 到 3(应使用 i < 4)。

关于java - Java中如何解决这个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23035533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com