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 FieldSpinner

后一个选项将保证您拥有数值,并且应该避免您使用 try catch 块。

于 2012-05-17T06:35:18.550 回答
0

Your TextBox may contain number with a white space. Try following edited code. You need to trim the TextBox Value before converting it to Integer. Also make sure that value is not exceeding to integer range.

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

Try this:

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

我建议将所有non-digit characters从 String 首先转换为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 回答