gpt4 book ai didi

java - 尝试运行我的程序时收到 NumberFormatException 错误

转载 作者:行者123 更新时间:2023-12-02 05:53:14 24 4
gpt4 key购买 nike

我之前问过这个问题,但被要求添加其他信息,但此后从未得到回复。提前抱歉。我并不是想向该网站发送垃圾邮件或任何其他内容。我只是在寻求一些帮助。

我在下面的代码中收到线程“main”java.lang.NumberFormatException 中的错误异常:对于输入字符串:“3 50”。我很难解决它。有人能解释一下它可能来自什么吗?根据我的理解,这通常意味着错误在第 3 行和第 50 行,正确吗?

 package report.generator;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;

public class ReportGenerator
{


public static void main(String[] args)
{
BufferedReader br = null;
BufferedWriter bw = null;

try
{
br = new BufferedReader(new FileReader("C:\\sprocketorders.txt"));
String line;
String element[] = new String[2];
int sum[] = new int[5];
File file = new File ("C:\\sprocketordersreport.txt");

while ((line = br.readLine()) != null)
{
element = line.split(" ");

switch(Integer.parseInt(element[0]))
{
case 1:
sum[0] = sum[0] + Integer.parseInt(element[1]);
break;
case 2:
sum[1] = sum[1] + Integer.parseInt(element[1]);
break;
case 3:
sum[2] = sum[2] + Integer.parseInt(element[1]);
break;
case 4:
sum[3] = sum[3] + Integer.parseInt(element[1]);
break;
case 5:
sum[4] = sum[4] + Integer.parseInt(element[1]);
break;
}
}

if (!file.exists())
{
file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
bw = new BufferedWriter(fw);
bw.write("Spacely Sprockets\nTaking Sprockets into the Future\nSales Summary Report\nSprocket Number Total Quantity Sold\n");
for(int i = 0; i < sum.length; i++)
bw.write((i + 1) + "\t" + sum[i] + "\n");

}
catch (IOException e)
{
e.printStackTrace();

}
finally
{
try
{
if (br != null)
br.close();
if (bw != null)
bw.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}

}

该程序将从文本文件中获取输入并以报告格式输出信息。

编辑:这是输入文件信息。看完之后,看来问题可能就出在这里。但我并不完全确定。

3 50

2 20

2100

5 15

1 90

5 85

4300

2 35

3100

它的格式与文本文件中的格式不完全相同。左边和右边的整数之间有更多的空格。

                        Spacely Sprockets
Taking Sprockets into the Future
Sales Summary Report
Sprocket Number Total Quantity Sold
1 90
2 155
3 50
4 300
5 100

这是我想要获得的输出报告。左边的每个数字都是一个链轮编号。右侧的数字反射(reflect)了每个链轮的销售数量。

这是尝试运行时的完整异常:

Exception in thread "main" java.lang.NumberFormatException: For input string: "3    50"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at report.generator.ReportGenerator.main(ReportGenerator.java:32)

http://m.uploadedit.com/b034/1398740135243.txt

最佳答案

试试这个:

line = line.trim().replaceAll("\\s+", " ");
element = line.split(" ");

关于java - 尝试运行我的程序时收到 NumberFormatException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23354549/

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