gpt4 book ai didi

JAVA:从文件中读取下一行,排除所有空格

转载 作者:行者123 更新时间:2023-12-02 11:55:28 27 4
gpt4 key购买 nike

我目前对如何在删除所有空白的同时从文本文件中读取内容感到困惑。我尝试使用分隔符和字符串分割但没有成功。问题是:我的任务要求我从文本文件中读取几行文本并将其存储在数组中。

然而,其中一行有一个可见的“间隙”或几个空格(由此处的语音标记表示),我认为这给我带来了问题。

以下是文本文件的示例:

jy1 10 10 10 10 10

mp1 6 5 6 " " 7 5

ls1 9 7 12 14 15

mp2 10 12 15 15 14

lb1 12 12 12 12 12

这是我的代码:

try {
FileReader reader= new FileReader(attendancesFile.txt);
String line="";
Scanner in=new Scanner(reader);

// reading from file line by line
while (in.hasNextLine()) {
line=in.nextLine();
// splitting line read in separate words
String tokens[]=line.split(" ");

// creates an array of attendances
// using 5 separate attendances represented as integer values from file
String id= tokens [0];
int attend1= Integer.parseInt(tokens [1]);
int attend2= Integer.parseInt(tokens [2]);
int attend3= Integer.parseInt(tokens [3]);
int attend4= Integer.parseInt(tokens [4]);
int attend5= Integer.parseInt(tokens [5]);
int [] attend= {attend1, attend2, attend3, attend4, attend5};

// uses FP method to find Fitness Class with given ID
// sets the attendance for Fitness Class with given ID
fp.classByID(id).setAttendance(attend);
}
reader.close();
in.close();
}
catch (IOException e) {
System.err.println("Reading from file error.");
}

理想情况下,我应该有 5 个数组,每个数组存储文件每行的 5 个整数。然后,我将这些数组传递给另一个类,其中的方法将这个 int 数组添加到对象数组中。

但是,它给了我一个错误:线程“main”java.lang.NumberFormatException中的异常:对于输入字符串:“”,我认为这是由于读取并添加了空格所致数组。我已经测试过打印出每个数组,看起来好像第四个数组只有 4 个元素和一个空格。

最佳答案

String tokens[]=line.split(" ");

这只用一个空格分隔。将其更改为

String tokens[]=line.split("\\s+");

这是任意数量的空白

This是不同正则表达式模式组合的有用指南。

\\s - 匹配单个空白字符

\\s+ - 匹配一个或多个空白字符的序列。

关于JAVA:从文件中读取下一行,排除所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47636824/

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