这一节有问题:
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
String faaltu = cin.readLine();
String inp = cin.readLine();
String[] part = inp.split("\\s");
for(int k = 0; k < part.length; k++)
{
System.out.println(part[k]);
}
obj.Smax = Integer.parseInt(part[0]);
我提供了以下输入:
2
4 12345
3 1234
以下是完整的代码:
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Codejam
{
Codejam(){};
static Codejam obj = new Codejam();
int totalStanding = 0;
int T;//no of test cases
int[] S;// no of people at each given shyness level
boolean[] standing;
int Smax;
int total = 0, newInv = 0;
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
obj.T = Integer.parseInt(cin.readLine());
for(int i = 0; i < obj.T; i++)
{
obj.populate();
obj.update();
while (obj.totalStanding < obj.total)
{
obj.newInv++;
obj.S[0]++;
obj.update();
}
System.out.println("Case #" + i + ": " + obj.newInv);
}
}
public void update()
{
for(int i = 0;i < obj.S.length; i++)
{
if ((totalStanding >= i) && (obj.standing[i] == false) )
{
obj.totalStanding += obj.S[i];
obj.standing[i] = true;
}
}
}
public void populate() throws IOException
{
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
String faaltu = cin.readLine();
String inp = cin.readLine();
String[] part = inp.split("\\s");
for(int k = 0; k < part.length; k++)
{
System.out.println(part[k]);
}
obj.Smax = Integer.parseInt(part[0]);
obj.S = new int[Smax + 1];
obj.standing = new boolean[Smax + 1];
for(int j = 0;j < part[1].length(); j++)
{
obj.S[j] = part[1].charAt(j) - '0';
obj.total += S[j];
}
}
}
但有例外
线程“main”java中出现异常。lang.NumberFormatException:用于java上的输入字符串“”。lang.NumberFormatException。java上的forInputString(未知源代码)。整型。java上的parseInt(未知源代码)。整型。Codejam处的parseInt(未知源)。在Codejam中填充(Codejam.java:57)。main(Codejam.java:24)
请指出我哪里出错了。
在我看来,你试图从输入中读取太多的行。
我怀疑你在读文件的结尾。
我建议你通过考试。readline()将populate()
方法作为参数,这样就不必打开另一个读卡器。
你也不应该如此严重地逃避你的分裂表达,我认为它现在读的是“反斜杠和s”,而不是“空白”。
错误很明显,您试图解析一个空字符串到一个抛出异常的数字。
我们不知道你的输入是什么,但是part[0]
是导致错误的空字符串:
obj.Smax = Integer.parseInt(part[0]);
将折扣值-79%转换为79%时获取错误。 **for(int i=1; i
当我从一个单独的客户端程序接收到一个整数(事务ID)转换成字符串时,我的Java UDP服务器程序的一个片段出错: 客户: 服务器: 当客户端发送数据包时,在字符串到整数的转换过程中,我得到了以下错误: 我还使用了整数。parseInt(clientMsg)具有类似的结果。然而,只要我没有尝试将数据包转换成整数,程序就可以将数据包打印为字符串值。 此外,虽然它在终端中显示了这一点,但当我将此错误消
我正在研究背包问题,我是Java新手。我可以像这样手动添加数字: 但是,我无法允许用户输入数字 第一个数字应该是目标,然后是权重<因此,我尝试将用户输入作为字符串,并用空格将其拆分,然后将其转换为整数<接下来,我尝试用两种方法进行parseInt,但都没有成功 以下是代码: 以下是错误: 异常线程"main"java.lang.NumberFormatException:对于输入字符串:"18 7
我正在研究背包问题,我是Java新手。我可以像这样手动添加数字: 谢谢你的帮助。
我的代码: 错误: 线程“AWT-EventQueue-0”java中出现异常。lang.NumberFormatException:对于输入字符串,java中的“FALSE”。lang.NumberFormatException。java上的forInputString(NumberFormatException.java:65)。lang.Integer。java上的parseInt(Inte
问题内容: 当我尝试将Integer.parseInt()与单个字符一起使用时,出现此错误。 是什么给我的错误是这样的: 问题答案: 字母不是数字。您是要写数字5吗? 还是您要打印字符的ASCII或Unicode值?