作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的测试器类中有以下代码片段。
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/
我的测试器类中有以下代码片段。 FileReader freader=new FileReader(filename); BufferedReader inputFile=new
我是一名优秀的程序员,十分优秀!