我正在尝试将字符串转换为Integer(不是原始int),然后将其存储在Stack<Integer>
中,但如果我使用这种语法,我会不断获得NumberFormatException
:
String element = "5 ";
System.out.println(Integer.valueOf(element));
有人可以解释如何正确使用valueOf();
吗?
编辑:我试过parseInt();它提供了相同的异常,无论如何我想要它在Integer中,而不是int。
答案 0 :(得分:8)
Integer.valueOf
会拒绝任何非数字字符。手动删除尾随空格或拨打String#trim()
:
String element = "5 ";
System.out.println(Integer.valueOf(element.trim()));
答案 1 :(得分:4)
它不喜欢这个空间。修剪输入。变化
String element = "5 ";
System.out.println(Integer.valueOf(element));
到
String element = "5 ";
System.out.println(Integer.valueOf(element.trim()));
如果您使用valueOf
或parseInt
,则无关紧要;似乎都不喜欢尾随空间。
答案 2 :(得分:0)
您应该使用Integer.parseInt()
代替,Integer.parseInt(element)
。
看起来是5之后的空间造成的。 Integer.valueOf(element)
仍然可以在没有空间的情况下工作。
干杯。