我的作业要求我创建一个程序来读取文本文件并计算其中的值。文本文件包含以下内容:
"11047461 [tab] 60.5
12024121 [tab] 58
12027019 [tab] 33"
前面的8个数字被忽略,只计算后面的数字。
在参考了这个网站的一些编码之后。我仍然得到这样的信息:
Exception in thread "main" java.lang.NumberFormatException: For input string: "11047461 60.5"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
at java.lang.Double.parseDouble(Double.java:510)
at Problem2.main(Problem2.java:16)
public static void main(String[] args) throws IOException, FileNotFoundException {
// TODO Auto-generated method stub
BufferedReader read = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\Users\\My World\\Downloads\\PRG102D.txt")));
String line;
double score;
while((line = read.readLine()) != null) {
score = Double.parseDouble(line);
System.out.println(score);
}
}
答案 0 :(得分:2)
您只想解析包含double值的String表示的行的部分。实际上,您正在解析整行而不忽略第一个数字。
答案 1 :(得分:0)
你的问题是你没有解析该行,所以它试图将整行解码为double,但它不能。
这是你可以做的事情:
while((line = read.readLine()) != null)
{
score = Double.parseDouble(line.subString(lastIndexOf(' ')+1));
System.out.println(score);
}