gpt4 book ai didi

java - 拆分从文件读取的字符串时出现 ArrayIndexOutOfBoundsException

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:37 24 4
gpt4 key购买 nike

我正在读取文件,一次一行。文件中的每一行包含两个由空格分隔的数字。为了处理这两个数字,我使用了 split 函数并创建了一个数组来存储这些值。但是,当我运行程序时,它给出了 arrayIndexOutofBoundsException。我以前用过 split 功能。我似乎不明白为什么它现在显示它。我的文本文件中的每一行如下所示:

5 15

3 7

代码:

for (int i=0; i<5; i++) {
try {
BufferedReader reader = new BufferedReader(new FileReader("measurements.rtf"));
String line = null;


line= reader.readLine();

String[] dimensions = line.split("\\s"); \\ splitting the line into an array
String widthS = dimensions[0];
String heightS = dimensions[1];
System.out.println(widthS);

width = Integer.valueOf(widthS);
height = Integer.valueOf(heightS);

System.out.println(height + width);

}

catch (FileNotFoundException e){
System.out.println("Error! D:\nFile not found.");
System.out.println(e);
}
catch(Exception e){
System.out.println("Error"); // array out of bounds exception
System.out.println(e);
}

我的文本文件:10 5

1000 1001

21 13

9999 888

345 1277

最佳答案

首先,修复您的代码,以便您可以真正循环遍历所有文件行。其次检查数组的长度。第三,打印当前正在读取的行,以便您可以确定问题是否出在文件内容上。

例如:

String fileName = "measurements.rtf";

BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(fileName));

String line = null;

while((line = reader.readLine()) != null) {
System.out.println("Line: " + line);
String dimensions[] = line.split("\\s");
if(dimensions.length == 2) {
int width = Integer.parseInt(dimensions[0]);
int height = Integer.parseInt(dimensions[1]);

//...
} else {
//wrong content in line!
}
}
} catch (FileNotFoundException e) {
// Handle FileNotFoundException
} catch(IOException e) {
// Handle IOException
} catch(ArrayIndexOutOfBoundsException e) {
//Handle ArrayIndexOutOfBoundsException
}

关于java - 拆分从文件读取的字符串时出现 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24173265/

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