gpt4 book ai didi

java - 线程中的异常 "main"java.lang.NumberFormatException : For input string: ""

转载 作者:行者123 更新时间:2023-12-01 14:09:20 25 4
gpt4 key购买 nike

原始问题

对于以下小代码,我收到错误...

import java.io.*;

class test
{

public static void main(String args[]) throws IOException
{

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int i;

System.out.println("Enter no of processes ");

int no_of_process=Integer.parseInt(br.readLine());
int process[]=new int[no_of_process];

System.out.println("Enter the values");

for(i=0;i<no_of_process;i++)
process[i]=Integer.parseInt(br.readLine());

for(i=0;i<no_of_process;i++)
System.out.println(process[i]);

}
}

输入:

Enter no of processes 
5
Enter the values
1
2
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at test.main(test.java:17)

Process completed.

我认为我已经正确编写了代码,并且还给出了正确的整数输入。如何在不使用任何显式异常处理语句的情况下消除上述错误?

进一步问题:

谢谢大家的回答...它正在工作。但我的脑海里出现了一个新问题。

我在代码中尝试了以下修改并执行了它。令我惊讶的是,输入被正确接受,没有任何运行时错误。

for(i=0;i<no_of_process;i++)
{
System.out.println(Write anything or even keep it blank);
process[i]=Integer.parseInt(br.readLine());
}

通过在 for 循环中的输入语句之前(甚至之后)添加一个 Print 语句,我的程序可以正常工作,并且在提供输入时不会引发异常。

你们能解释一下这背后的原因吗?

如果我从那里删除 Print 语句,同样的错误会重复出现。我真的很困惑这背后的原因。请帮忙。

最佳答案

没有任何错误处理语句?在尝试解析 br.readLine() 之前检查它是否返回“”,如下所示:

String line = br.readLine();
if(!String.isEmpty(line))
{
//Do stuff
}
else
{
//Do other stuff
}

关于java - 线程中的异常 "main"java.lang.NumberFormatException : For input string: "",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660175/

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