编写一个Java应用程序,采用Scanner类从键盘读取用户输入两个字符串,并重载strAdd函数分别实现这两个字符串的拼接、整数相加和双精度浮点数相加,函数为静态、返回值均为String类型。要进行异常处理,对输入的不符合要求的字符串提示系统信息给用户,不能使程序崩溃。
时间: 2024-10-24 11:03:04 浏览: 34
2019年Java程序设计总复习题库及答案(100题)
在Java中,我们可以创建一个名为`MathOperations`的类,包含一个静态方法`strAdd()`,这个方法会根据传入的数据类型进行不同的操作。这里我们使用`try-catch`块来捕获并处理可能的异常。以下是相应的代码示例:
```java
import java.util.Scanner;
import java.util.InputMismatchException;
public class MathOperations {
// 使用static修饰,可以在类外直接通过类名调用
public static String strAdd(String input1, String input2) {
Scanner scanner = new Scanner(System.in);
try {
// 尝试将输入转换为整数和浮点数
int num1 = Integer.parseInt(input1);
double num2 = Double.parseDouble(input2);
// 如果输入的是数字,则进行加法运算
if (input1.matches("\\d+") && input2.matches("\\d+")) {
return "The sum of integers is: " + (num1 + num2);
} else if (input1.matches("\\d*\\.\\d+") && input2.matches("\\d*\\.\\d+")) {
// 双精度浮点数相加
return "The sum of doubles is: " + (num1 + num2);
} else {
// 输入的是字符串,直接拼接
return "Strings concatenated: " + (input1 + input2);
}
} catch (NumberFormatException e) {
// 输入无法转换为整数或浮点数,提示错误
System.out.println("Invalid input! Please enter either two numbers or strings.");
return null; // 或者抛出异常,由外部处理
} finally {
// 关闭扫描器以释放资源
scanner.close();
}
}
public static void main(String[] args) {
System.out.println("Enter the first string:");
String str1 = scanner.nextLine();
System.out.println("Enter the second string:");
String str2 = scanner.nextLine();
// 调用strAdd方法
String result = strAdd(str1, str2);
if (result != null) {
System.out.println(result);
}
}
}
```
当你运行这个程序,它会提示你输入两个字符串。如果输入的是数字,它会计算它们的和;如果是字符串,它会直接拼接。如果输入无法转换为有效数值,它会给出错误提示。
阅读全文