Java 尝试运行我的程序时收到错误
我在以下代码的主线程java.lang.NumberFormatException:中接收到错误异常,用于输入字符串:350。我很难解决这个问题。有没有人能解释一下这是怎么回事?根据我的理解,这通常意味着错误在第3行,第50行正确吗Java 尝试运行我的程序时收到错误,java,Java,我在以下代码的主线程java.lang.NumberFormatException:中接收到错误异常,用于输入字符串:350。我很难解决这个问题。有没有人能解释一下这是怎么回事?根据我的理解,这通常意味着错误在第3行,第50行正确吗 package report.generator; import java.io.BufferedReader; import java.io.FileReader; import java.io.File; import java.io.FileWri
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();
}
}
}
}
该程序从文本文件中获取输入,并以报告格式输出信息
编辑:这里是输入文件信息。看了之后,问题似乎就出在这里。但我不完全确定
350
220
2100
515
190
585
4300
235
3100
它的格式与文本文件中的格式不完全相同。左边的整数和右边的整数之间有更多的空格。Integer.parseInt最有可能抛出此错误,因为您试图解析的数字格式不正确,请查看您试图读取的字符串,您可能会发现错误,然后[编辑]
问题似乎来自输入文件中包含数字的行之间有空行。如果提供的值不是有效的数字,则会出现NumberFormatException。尝试调试并查看Integer.parseIntNo所有行上的值。向我们显示与异常关联的strace跟踪,该跟踪将包含有问题的行号…将信息添加到POST如果输入文件是双倍行距的,则在正确解析第一对数字后,它会崩溃,因为它试图把一个空行解析成一个整数。我错了数字之间的空格-你的行。拆分处理得很好。是的,确认-它运行良好,没有双空格。所以你是说,如果我删除文本文件中整数之间的额外空间,我应该是好的?行之间的额外空间,而不是每行上2个整数之间的额外空间。