开发者社区> 问答> 正文

对输入的不符合要求的字符串提示给用户,不能使程序崩溃。:报错

编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,


import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Stringput {

public static void main(String[] args) {

String s1 = null, s2 = null, ss, si, sf;
int i1, i2;
float f1, f2;
BufferedReader strin = new BufferedReader(new InputStreamReader(
System.in));
try {
System.out.print("请输入第一个字符串:");
s1 = strin.readLine();// 按行读取,当读到流的末尾时返回null
System.out.print("请输入第二个字符串:");
s2 = strin.readLine();
} catch (Exception e) {
System.out.println(e.getMessage());
}
try {
i1 = Integer.parseInt(s1);
i2 = Integer.parseInt(s2);
f1 = Float.parseFloat(s1);
f2 = Float.parseFloat(s2);
ss = strAdd(s1, s2);
si = strAdd(i1, i2);
sf = strAdd(f1, f2);
System.out.println("输入的两个字符串相加结果为:" + ss);
System.out.println("输入的两个字符串转换成整数相加结果为:" + si);
System.out.println("输入的两个字符串转换成浮点数相加结果为:" + sf);
} catch (Exception e) {
System.out.println("输入的不合法,请重新输入!");
}


}


static String strAdd(String str1, String str2) {
return str1 + str2;
}


static String strAdd(int i1, int i2) {
return String.valueOf(i1 + i2);
}


static String strAdd(float f1, float f2) {
return String.valueOf(f1 + f2);
}
}

展开
收起
kun坤 2020-06-06 15:56:18 568 0
1 条回答
写回答
取消 提交回答
  • try { System.out.print("请输入第一个字符串:"); s1 = strin.readLine();// 按行读取,当读到流的末尾时返回null System.out.print("请输入第二个字符串:"); s2 = strin.readLine(); } catch (Exception e) { System.out.println(e.getMessage()); }

    这个try没必要吧



    ######回复 @刀锋 : 不用谢######回复 @freesnow : 谢啦,已经搞定了!######回复 @刀锋 : catch以后所在函数就不会往后执行了,可以尝试在另一个函数里输入转换,然后将结果返回,在main函数里重复执行该函数,知道它返回了正确的结果######回复 @freesnow : 已经看了那位的帖子,写了半天没写出来。######回复 @刀锋 : 你上个帖子里有个人说的挺对的,在while里用个标志位,当不抛出异常时,将标志位改成特定值,然后while判断该标志位来决定什么时候跳出循环

    2020-06-06 15:56:23
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载