gpt4 book ai didi

java - 如何修改此代码以处理包含字符和整数的输入文本?

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:53 25 4
gpt4 key购买 nike

我正在尝试获取一个包含字符和整数的输入 .txt 文件并仅读取整数,以便我可以执行计算。当我的输入 .txt 文件仅包含以空格和逗号分隔的整数时,此代码有效,但在我添加字符时失败。

示例文件:

Student A: 90, 85, 70, 95
Student B: 65, 75, 90, 90
Student C: 80, 80, 75, 85
Student D: 100, 75, 80, 75

public class test {

public static void ReadScore (String[] args) {
List<Integer> listIntegers = new ArrayList<>();
File f = new File("input2.txt"); {
try (Scanner sc = new Scanner(f)) {
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] tokens = line.split("\\s*,\\s*");
for (String token : tokens) {
listIntegers.add(Integer.parseInt(token));
}
}
} catch (Exception e) {
e.printStackTrace();
}
finally {System.out.println(listIntegers); }
}}

public static void main (String[] args) {
test.ReadScore(args);
}
}

当示例 .txt 文件仅包含整数时,我会收到如下结果:

[90, 85, 70, 95, 65, 75, 90, 90, 80, 80, 75, 85, 100, 75, 80, 75]

但是,当引入“Student A:”等时,我不确定如何处理它并且我收到如下 IOExceptions:

java.lang.NumberFormatException: For input string: "Jeff: 10"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at test.ReadScore(test.java:17)
at test.main(test.java:27)
[]

最佳答案

最简洁的方法是将您的输入文件转换为完整的 CSV。学生A,M1,M2..

如果不能这样做,则必须从输入行中删除学生姓名,然后使用分隔符逗号拆分字符串。

伪代码如下所示line = line.substring(line.indexOf(':') + 1);

希望这对您有所帮助。

关于java - 如何修改此代码以处理包含字符和整数的输入文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506727/

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