簡體   English   中英

Java:將字符串轉換為整數的NumberFormatException

[英]Java: NumberFormatException in converting string to integer

我想從文本框中檢索值並將其轉換為整數。 我編寫了以下代碼,但拋出了NumberFormatException

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

System.out.println的第一次調用將顯示數字,但轉換為整數會出現異常。 我究竟做錯了什么?

請注意,如果您的字符串中有空格,解析將失敗。 您可以先使用.trim方法修剪字符串,或者使用.replaceAll("\\\\s+", "")替換所有字符串。

如果您想避免此類問題,建議您使用格式化文本字段微調框

后面的選項將確保您具有數值,並且應避免使用try catch塊。

您的文本框可能包含帶有空格的數字。 嘗試遵循以下已編輯的代碼。 您需要先修剪TextBox值,然后才能將其轉換為Integer。 還要確保該值不超過整數范圍。

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

嘗試這個:

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

我建議先將String中的所有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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM