中易网

这个java程序为什么会抛出异常?

答案:6  悬赏:30  
解决时间 2021-04-07 08:11
【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

public class test {
public static void main(String[] args) {
int count=5;
int sum=0;
String str=new String();
for(int i=0;i<5;i++){
str=str+""+2;
}
System.out.println(str);
for(int i=0;i<=5;i++){
int k=Integer.parseInt(str.substring(0, i));
System.out.println(k);
sum=sum+k;
}
System.out.println(sum);
}

}

Exception in thread "main" 22222
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at test.main(test.java:14)
最佳答案
public static void main(String[] args) {
int count=5;
int sum=0;
String str=new String();
for(int i=0;i<5;i++){
str=str+""+2;
}
System.out.println(str);
for(int i=0;i<=5;i++){
int k=0;
String temp = str.substring(0, i);
if(!("".equals(temp))){
k=Integer.parseInt(temp);
}
System.out.println(k);
sum=sum+k;
}
System.out.println(sum);
}
拿我这个去跑试试,你先判断下str.substring(0, i)是否为“”了再用Integer.parseInt(temp)就不会出错了,这就是你没做异常处理啊!
全部回答
兄弟 你的test 请大写 Test
有些java程序是以损坏的 还有些是要你自已动手 用电脑将程序进行简单调整才能用的 但如果任何java程序都不能运行 那就是手机的问题了
String类的subString(begin,end)方法是返回从字符串begin到end-1之间的字串,你程序中第二个循环,当i=0时,你看看是不是有问题???如果你把里面的subString(0,i)改为subString(0,i+1)就可以达到效果了,不过仍然会抛异常。所以这时候你应该加一个判断语句,当i=5时,直接输出字符串本身
throw是定义调用一个方法时要捕获异常 例如类c中有一个方法f: public void c() throws exception { …… throw new exception() } 那么,当你在别的地方调用类c的f方法时,就要用try和catch捕获exceptio这个异常,否则就会出错
str.substring(0, i),当i=0时,它的值就为空,此时再调用Integer.parseInt就会出现异常,所以把i的值设置为由1开始就可以了。 LZ可以参考参考下面的程序: public class f { public static void main(String[] args) { int a=0,b=2; for(int i=0;i<5;i++){ a+=b; b=b*10+2; } System.out.println(a); } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
她跟他男朋友分手了,想追求她,跟她在一起,
安利成人钙镁片和儿童钙片有什么区别
我现在想买手机看了3钟。1小米5 2小米MAX 3红
为什么爱,液是香的?
沛县冷面在哪里啊,我有事要去这个地方
各位同志,我想知道苹果4怎么连接上无线网络
以+单人盘是什么字
为什么王源13岁这么高,王俊凯13岁这么矮
我有过敏性鼻炎,医生开了雷诺考特(布地奈德
印刷品挂号信的邮费是怎么算的?
嘉兴市秀州区邮编是多少
一个人生病后说不想见他爱的人是什么意思
手机能连上旧电视机能看吗
27万本金,按照年化百分之四的收益,18年后可以
新买的不锈钢水壶,烧水后壶底有一层灰是怎么
推荐资讯
丹麦的伏特加怎么样?Danzka这个牌子的伏特加
求函数y=x²-2x+3/x²+2x-3的值域
皮肤一直都不好,不管用什么摸脸都过敏,到现
沙湾县红岩印刷厂在什么地方啊,我要过去处理
pe系统里找不到串口硬盘,怎么办?
收音机和无线话筒
商用风能热水器机器在运行,可是出的不是热水,
善攻者,敌不知其所守,善守者,敌不知其所攻
队长大灶鹅怎么样
江苏省连云港市赣榆县海头镇有没有招扑鱼工的
大桥在哪里啊,我有事要去这个地方
老款伊兰特跑完高速后换档时发颤
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?