2

我正在尝试将字符串转换为 Integer (不是原始 int ),然后再将其存储在 a 中,但如果我使用以下语法Stack<Integer>,我会不断得到 a :NumberFormatException

String element = "5 ";
System.out.println(Integer.valueOf(element));

有人可以解释如何valueOf();正确使用吗?

编辑:我试过 parseInt(); 这给出了相同的异常,无论如何我希望它是一个整数,而不是整数。

4

3 回答 3

8

Integer.valueOf将拒绝任何非数字字符。手动删除尾随空格或调用String#trim()

String element = "5 ";
System.out.println(Integer.valueOf(element.trim()));
于 2013-02-26T22:18:14.733 回答
4

它不喜欢这个空间。修剪输入。改变

String element = "5 ";
System.out.println(Integer.valueOf(element));

String element = "5 ";
System.out.println(Integer.valueOf(element.trim()));

valueOf使用or没关系parseInt;似乎都不喜欢尾随空格。

于 2013-02-26T22:18:14.277 回答
0

您应该Integer.parseInt()改用,应该是Integer.parseInt(element).

似乎 5 之后的空间导致了这种情况。Integer.valueOf(element)没有空间应该仍然可以工作。

干杯。

于 2013-02-26T22:16:22.907 回答