[問題] 數值轉換parseInt出現例外
Scanner input=new Scanner(System.in);
System.out.print("請輸入一串數字:");
String num=input.next();
String[] word=num.split("");
int[] count=new int[10];
for(int i=0;i<word.length;i++)
{
count[Integer.parseInt(word[i])]++;
}
for(int i=0;i<count.length;i++)
{
System.out.println(i+" "+count[i]);
}
問題:輸入一串數字,並計算每個數字出現的次數
例外錯誤:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.
java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at ex19.main(ex19.java:21)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.35.210
推
01/13 06:07, , 1F
01/13 06:07, 1F
加例外後 好像也轉不過去‥好像是因為拆成String後 每個數字的後面會加個什麼東西
//String[] word=num.split("");
char[] word=num.toCharArray();
count[(word[i]-'0')]++;
改這樣就能過了
只是我很好奇為何 char-char後 會變int?
還有原方法 是否有其它解
原方法compiler能過,但一旦輸入一串數字 仍會出現例外
其實也有想過 將char 轉成byte 在去判斷ascii碼
不過 想說用原方法 應該會比較簡潔
※ 編輯: cio1030 來自: 114.37.109.249 (01/13 14:49)
推
01/13 23:13, , 2F
01/13 23:13, 2F
推
01/14 11:14, , 3F
01/14 11:14, 3F
→
01/14 11:25, , 4F
01/14 11:25, 4F