gpt4 book ai didi

java - 将输入解析为数组时出现 NumberFormatException : For input string: "",

转载 作者:太空宇宙 更新时间:2023-11-04 13:59:37 24 4
gpt4 key购买 nike

boolean cloud = false;
//max size of array is 100
int actualLength = 0;
int [] arrayOfInputs = new int[100];
while (!cloud)
{
BufferedReader BR = new BufferedReader (new InputStreamReader(System.in));
//getting the input in string version
String line = BR.readLine();
String [ ] splittingThem = line.trim().split(" ");
actualLength = splittingThem.length;
//assigning values of array to input
for (int i = 0; i < actualLength; i++)
{
arrayOfInputs[i] = Integer.parseInt(splittingThem[i]);
if (arrayOfInputs[i]==0)
{
cloud = true;
}
}

}
//making a new array based off the size of the inputs only
int [] actualArrayOfInputs = new int[actualLength];
for (int i = 0; i < actualLength; i++)
{
actualArrayOfInputs[i] = arrayOfInputs[i];
}

好吧,如果我输入“1 2 3 4”,但如果我复制并粘贴如下输入,我的代码可以正常工作:

33

-55

-44

12312

2778

-3

-2

53211

-1

44

0

然后我得到:

Exception in thread "main" java.lang.NumberFormatException: 
For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65).

我不明白为什么它在我输入时接受输入,但在我尝试粘贴它们时不接受。

我在 Google 上查找了这个问题,并得出了这个解决方案:NumberFormatException: For input string: "" while parsing ,但我的代码没有这个错误,所以我不知道它是什么。

最佳答案

您正在阅读空行:

 String line = BR.readLine();
String [ ] splittingThem = line.trim().split(" ");

问题似乎不在于您的代码,而在于您的输入。还有一点是,你是从System.in读取的,如果你不小心多按了一个回车键,就会抛出异常。

看看发生了什么:

  1. 如果该行是“”

  2. 那么 line.trim().split("") 仍然会有一个元素。splittingThem.length => 1

  3. 这会让你进入循环并解析“”->异常!

关于java - 将输入解析为数组时出现 NumberFormatException : For input string: "",,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439611/

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