看板 java 關於我們 聯絡資訊
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
a1234957:""就例外拉 01/13 06:07
加例外後 好像也轉不過去‥好像是因為拆成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)
sansea:把num.splut("")陣列裡面的元素一個一個print出來看看囉~ 01/13 23:13
chenchen142:也許原方法word[0]=="", 所以無法轉int? 01/14 11:14
chenchen142:應該說word[0].equals("") 01/14 11:25