[問題] 數值轉換parseInt出現例外

看板java作者 (爪蛙)時間15年前 (2011/01/13 04:47), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串1/1
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
把num.splut("")陣列裡面的元素一個一個print出來看看囉~
01/13 23:13, 2F

01/14 11:14, , 3F
也許原方法word[0]=="", 所以無法轉int?
01/14 11:14, 3F

01/14 11:25, , 4F
應該說word[0].equals("")
01/14 11:25, 4F
文章代碼(AID): #1DBXDB_- (java)