1

テキストボックスから値を取得して整数に変換したい。次のコードを書きましたが、NumberFormatException.

String nop = no_of_people.getText().toString();
System.out.println(nop);
int nop1 = Integer.parseInt(nop);
System.out.println(nop1);

への最初の呼び出しSystem.out.printlnで数値が出力されますが、整数に変換すると例外が発生します。私は何を間違っていますか?

4

4 に答える 4

6

文字列に空白が含まれていると、解析が失敗することに注意してください。.trimメソッドを使用して最初に文字列をトリミングするか、 .replaceAll("\\s+", "").

このような問題を回避したい場合は、Formatted Text FieldまたはSpinnerを使用することをお勧めします。

後者のオプションを使用すると、数値が確実に得られるため、try catch ブロックを使用する必要がなくなります。

于 2012-05-17T06:35:18.550 に答える
0

non-digit characters最初に変換する文字列からすべてを置き換えることをお勧めしintます:

replaceAll("\\D+", "");

次のコードを使用できます。

String nop=(no_of_people.getText().toString().replaceAll("\\D+", ""));
System.out.printf("nop=[%s]%n", nop);
int nop1 = Integer.parseInt(nop);
System.out.printf("nop1=[%d]%n", nop1);
于 2012-05-17T06:59:32.227 に答える
0

TextBox には、空白を含む数字が含まれている場合があります。編集したコードに従ってみてください。Integer に変換する前に、TextBox 値をトリミングする必要があります。また、値が整数範囲を超えていないことを確認してください。

String nop=(no_of_people.getText().toString().trim());
System.out.println(nop);
int nop1 = Integer.parseInt(nop);
System.out.println(nop1);
于 2012-05-17T06:41:01.947 に答える
0

これを試して:

int nop1 = Integer.parseInt(no_of_people.getText().toString().trim());
System.out.println(nop1);
于 2012-05-17T06:42:17.940 に答える