gpt4 book ai didi

Java parseInteger 抛出错误

转载 作者:行者123 更新时间:2023-12-01 16:53:50 25 4
gpt4 key购买 nike

我的测试器类中有以下代码片段。

     FileReader freader=new FileReader(filename);
BufferedReader inputFile=new BufferedReader(freader);
int numScores = 0;
String playerType = "";
String nameHome = "";
String playerName = "";
String home = "";
String location = "";
int score = 0;
String date = "";
double courseRating = 0;
int courseSlope = 0;

ArrayList<Player> players = new ArrayList<Player>();

while (inputFile.read()!= -1) {
numScores = Integer.parseInt(inputFile.readLine());
playerType = inputFile.readLine();
nameHome = inputFile.readLine();
StringTokenizer st = new StringTokenizer(nameHome,",");
playerName = st.nextToken();
home = st.nextToken();

程序可以编译,但是当测试器运行时,我收到以下输出错误。

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:592)
at java.lang.Integer.parseInt(Integer.java:615)
at PlayerTest.main(PlayerTest.java:34)

我尝试对此进行研究,但我发现,当它更改从数据文件读取的字符串并将其转换为 int 时,可能存在空格。我尝试直接读入字符串,修剪字符串,然后转换为 int,但出现了相同的错误。

这是替换 numScores = Integer.parseInt(inputFile.readLine()); 的代码

        tempScores = inputFile.readLine();
tempScores.trim();
System.out.println(tempScores);
numScores = Integer.parseInt(tempScores);

感谢任何帮助。

*编辑以显示示例数据文件中的示例数据

3
B
James Smith, Strikers
FWB Bowling, 112,09/22/2012
White Sands, 142,09/24/2012
Cordova Lanes,203,09/24/2012

最佳答案

您的文件可能包含空行。这些被读取为“”,因此无法转换为 int。

此外,您有可能通过 while 循环头中的 read 语句读取每行的第一个字符,从而在 readline 命令中忽略它。那么长度为 1 的数字(如“1”)将成为空行。

无论如何,循环的构造都是一个错误。

关于Java parseInteger 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35466752/

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