“线程中的异常”;“主要”;java.lang.NumberFormatException:对于输入字符串:"&引用;(我输入了数字,但它似乎读取了一个空字符串)

“线程中的异常”;“主要”;java.lang.NumberFormatException:对于输入字符串:"&引用;(我输入了数字,但它似乎读取了一个空字符串),java,exception,numberformatexception,Java,Exception,Numberformatexception,本节中有一些错误: BufferedReader cin=新的BufferedReader(新的InputStreamReader(System.in)); 字符串faaltu=cin.readLine(); 字符串inp=cin.readLine(); 字符串[]部分=inp.split(\\s”); 对于(int k=0;k

本节中有一些错误:

BufferedReader cin=新的BufferedReader(新的InputStreamReader(System.in));
字符串faaltu=cin.readLine();
字符串inp=cin.readLine();
字符串[]部分=inp.split(\\s”);
对于(int k=0;k
我提供了以下信息:

2
4 12345
3 1234
以下是完整的代码:

import java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
类码干扰
{
Codejam(){};
静态Codejam obj=新Codejam();
整数=0;
int T;//测试用例的数量
int[]S;//每个给定害羞级别的人数
布尔[]站;
int-Smax;
整数合计=0,新投资=0;
公共静态void main(字符串[]args)引发java.lang.Exception
{
//你的密码在这里
BufferedReader cin=新的BufferedReader(新的InputStreamReader(System.in));
obj.T=Integer.parseInt(cin.readLine());
for(int i=0;i=i)和&(目标站姿[i]==false))
{
obj.totalStanding+=obj.S[i];
obj.standing[i]=正确;
}
}
}
public void populate()引发IOException
{
BufferedReader cin=新的BufferedReader(新的InputStreamReader(System.in));
字符串faaltu=cin.readLine();
字符串inp=cin.readLine();
字符串[]部分=inp.split(\\s”);
对于(int k=0;k
我得到了一个例外

线程“main”java.lang.NumberFormatException中的异常: 对于java.lang.NumberFormatException.forInputString中的输入字符串:“”(未知源) 位于java.lang.Integer.parseInt(未知源) 位于java.lang.Integer.parseInt(未知源) 在Codejam.populate(Codejam.java:57) 在Codejam.main(Codejam.java:24)


请指出我的错误所在。

错误很明显,您试图将一个空字符串解析为一个数字,该字符串引发了异常

我们不知道您的输入是什么,但是
部分[0]
是导致错误的空字符串:

obj.Smax = Integer.parseInt(part[0]);

错误很明显,您试图将引发异常的空字符串解析为一个数字

我们不知道您的输入是什么,但是
部分[0]
是导致错误的空字符串:

obj.Smax = Integer.parseInt(part[0]);

错误很明显,您试图将引发异常的空字符串解析为一个数字

我们不知道您的输入是什么,但是
部分[0]
是导致错误的空字符串:

obj.Smax = Integer.parseInt(part[0]);

错误很明显,您试图将引发异常的空字符串解析为一个数字

我们不知道您的输入是什么,但是
部分[0]
是导致错误的空字符串:

obj.Smax = Integer.parseInt(part[0]);

在我看来,您试图从输入中读取太多的行

我怀疑你的阅读超过了文件的结尾

我建议您将
cin.readline()
作为参数传递给
populate()
方法,这样您就不必打开另一个阅读器


您也不必过多地避开拆分表达式,我认为它当前的读数是“反斜杠和s”,而不是“空格”。

在我看来,您试图从输入中读取太多的行

我怀疑你的阅读超过了文件的结尾

我建议您将
cin.readline()
作为参数传递给
populate()
方法,这样您就不必打开另一个阅读器


您也不必过多地避开拆分表达式,我认为它当前的读数是“反斜杠和s”,而不是“空格”。

在我看来,您试图从输入中读取太多的行

我怀疑你的阅读超过了文件的结尾

我建议您将
cin.readline()
作为参数传递给
populate()
方法,这样您就不必打开另一个阅读器


您也不必过多地避开拆分表达式,我认为它当前的读数是“反斜杠和s”,而不是“空格”。

在我看来,您试图从输入中读取太多的行

我怀疑你的阅读超过了文件的结尾

我建议您将
cin.readline()
作为参数传递给
populate()
方法,这样您就不必打开另一个阅读器


你也不必太过逃避你的拆分表达式,我认为它现在读的是“反斜杠和s”,而不是“空格”。

我给出了输入:2 4 12345 31234@gnsb如果这确实是收到的输入,那么您的拆分将起作用。请在解析前打印
inp
,并告诉我输出。打印变量以测试程序使我意识到错误:我读过了文件的结尾,非常感谢您的帮助:)我给出了输入:2 4 12345 31234@gnsb如果这确实是收到的输入,那么您的拆分将起作用。请打印
inp