【程序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)
这个java程序为什么会抛出异常?
答案:6 悬赏:30
解决时间 2021-04-07 08:11
- 提问者网友:喵星人荷西
- 2021-04-06 15:34
最佳答案
- 二级知识专家网友:情窦初殇
- 2021-04-06 16:53
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)就不会出错了,这就是你没做异常处理啊!
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)就不会出错了,这就是你没做异常处理啊!
全部回答
- 1楼网友:何必打扰
- 2021-04-06 21:18
兄弟 你的test 请大写 Test
- 2楼网友:陪伴是最长情的告白
- 2021-04-06 20:06
有些java程序是以损坏的 还有些是要你自已动手 用电脑将程序进行简单调整才能用的 但如果任何java程序都不能运行 那就是手机的问题了
- 3楼网友:高冷不撩人
- 2021-04-06 19:17
String类的subString(begin,end)方法是返回从字符串begin到end-1之间的字串,你程序中第二个循环,当i=0时,你看看是不是有问题???如果你把里面的subString(0,i)改为subString(0,i+1)就可以达到效果了,不过仍然会抛异常。所以这时候你应该加一个判断语句,当i=5时,直接输出字符串本身
- 4楼网友:努力只為明天
- 2021-04-06 18:44
throw是定义调用一个方法时要捕获异常
例如类c中有一个方法f:
public void c() throws exception
{
……
throw new exception()
}
那么,当你在别的地方调用类c的f方法时,就要用try和catch捕获exceptio这个异常,否则就会出错
- 5楼网友:陪衬角色
- 2021-04-06 18:03
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);
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯