2

に格納する前に、文字列を Integer (プリミティブ int ではない) に変換しようとしていますが、この構文を使用するとStack<Integer>a を取得し続けます。NumberFormatException

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

誰かがvalueOf();正しく使用する方法を説明できますか?

編集: parseInt(); を試しました。これは同じ例外を与えますが、とにかくintではなくIntegerでそれが必要です。

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またはparseInt;を使用するかどうかは問題ではありません。どちらも末尾のスペースが好きではないようです。

于 2013-02-26T22:18:14.277 に答える
0

Integer.parseInt()代わりに使用する必要がありますInteger.parseInt(element)

5 の後のスペースが原因のようです。Integer.valueOf(element)スペースがなくても機能するはずです。

乾杯。

于 2013-02-26T22:16:22.907 に答える