![](/img/trans.png)
[英]Why do I get a NumberFormatException with this Integer.parseInt(x, y)?
[英]why do i have to use Integer.parseInt?
我是Java新手,如果這是一個愚蠢的問題,請原諒我。
首先,我做了以下工作(這是我的代碼的一部分):
public static void team()
{
int score = JOptionPane.showInputDialog("Enter the team score...");
calculate(score);
}
但是我一直收到錯誤消息:“不兼容的類型字符串無法轉換為int”。 所以我認為我可能需要使用解析。 我做了以下工作,並且有效:
public static void team()
{
int myScore;
String score = JOptionPane.showInputDialog("Enter the team score...");
myScore = Integer.parseInt(score);
calculate(myScore);
}
我想知道為什么我需要解析變量“分數”? 在第一段代碼中,我將變量score聲明為整數,因此它不會將我期望是Integer的輸入存儲在變量score中,該變量隨后傳遞給計算方法。 我知道解析是在將String轉換為Integer時進行的。 但是,在這種情況下,我不希望用戶輸入字符串,那么為什么需要解析?
因為字符串的存儲方式不同於整數。 整數以二進制形式存儲,而字符串形式則是字符的集合。
示例:數字14將在Binary中存儲為1110。 但是,作為字符串存儲為00110001 00110100
看看這個http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/The_Characters.asp
Integer.parseInt()基本上通過在查找表中查找字符來為您完成工作,並且只要它們與適當的整數值相關聯,它就會將其轉換為二進制形式並存儲為整數。
JOptionPane.showInputDialog("Enter the team score...");
返回一個您試圖存儲在int中的字符串。 這就是為什么要獲取“不兼容類型”的原因。
有關更多信息,請參見Javadocs 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.