作者cio1030 (爪蛙)
看板java
标题[问题] 数值转换parseInt出现例外
时间Thu Jan 13 04:47:03 2011
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
1F:推 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)
2F:推 sansea:把num.splut("")阵列里面的元素一个一个print出来看看罗~ 01/13 23:13
3F:推 chenchen142:也许原方法word[0]=="", 所以无法转int? 01/14 11:14
4F:→ chenchen142:应该说word[0].equals("") 01/14 11:25