我遇到了这些问题:
java.lang.NumberFormatException:对于输入字符串:""
线程" main"中的例外情况java.lang.NullPointerException
https://api.push.apple.com/
这就是我如何读取数组的值:
System.out.println("Amount of elements to calculate: ");
try
{
x = Integer.parseInt(br.readLine());
}
catch(NumberFormatException | IOException z)
{
System.out.println("Error!!!"+z);
}
int [] n = new int[x];
这就是我调用方法并将数组作为参数发送的方法
for(int i=0; i<n.length; i++)
n[i] = Integer.parseInt(br.readLine());
这是我的类中加载数组的方法:
obj.asignar(n);
答案 0 :(得分:2)
您无法从空 String
获取整数:
Integer.parseInt(br.readLine()); // when br.readLine() is ""
但您可以使用两种常用方法:
跳过 空 String
:
String line = br.readLine();
if ( !"".equals(line)) {
x = Integer.parseInt(line);
}
对空字符串使用默认值 - 如0
:
String line = br.readLine();
x = "".equals(line) ? 0 : Integer.parseInt(line);
您还可以通过编写新方法来概括此方法:
static int parseInt(String s, int defaultValue) {
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
return defaultValue;
}
}
可以使用:
调用x = parseInt(br.readLine(), 0);
与您的评论相关,您可以轻松阅读所需的元素。只需定义total
并在for
循环中使用它:
public static void main(String[] args) throws IOException {
int total = 3;
int n[] = new int[total];
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < total; i++) {
n[i] = Integer.parseInt(br.readLine()); // use the approaches above
}
System.out.println(Arrays.toString(n));
}
例如:
如果你的输入是
1
2
3
输出将是
[1, 2, 3]