Java实现四则混合运算
1. 流程
下面是实现“Java实现四则混合运算”的流程表格:
步骤 | 描述 |
---|---|
1 | 接收用户输入的四则运算表达式 |
2 | 解析表达式,得到运算数和运算符 |
3 | 进行四则运算 |
4 | 输出运算结果 |
2. 实现步骤
2.1 接收用户输入
首先,我们需要接收用户输入的四则运算表达式。可以使用Scanner
类来实现这一功能。下面是相关代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入四则运算表达式:");
String expression = scanner.nextLine();
scanner.close();
// 进行下一步操作
}
}
代码解释:
Scanner scanner = new Scanner(System.in);
创建一个Scanner
对象,用于接收用户输入。System.out.print("请输入四则运算表达式:");
打印提示信息,提示用户输入四则运算表达式。String expression = scanner.nextLine();
通过nextLine()
方法接收用户输入的表达式,并将其存储在expression
变量中。scanner.close();
关闭Scanner
对象。
2.2 解析表达式
接下来,我们需要对输入的四则运算表达式进行解析,得到运算数和运算符。可以使用正则表达式来匹配并提取运算数和运算符。下面是相关代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
// ...省略前面的代码...
// 解析表达式
Pattern pattern = Pattern.compile("(\\d+)([+\\-*/])(\\d+)");
Matcher matcher = pattern.matcher(expression);
if (matcher.find()) {
int num1 = Integer.parseInt(matcher.group(1));
char operator = matcher.group(2).charAt(0);
int num2 = Integer.parseInt(matcher.group(3));
// 进行下一步操作
} else {
System.out.println("表达式格式错误!");
}
}
}
代码解释:
Pattern pattern = Pattern.compile("(\\d+)([+\\-*/])(\\d+)");
创建一个正则表达式模式,用于匹配运算数和运算符。Matcher matcher = pattern.matcher(expression);
通过matcher()
方法将表达式与模式进行匹配。if (matcher.find()) {
检查是否匹配成功。int num1 = Integer.parseInt(matcher.group(1));
使用group()
方法获取第一个运算数,并将其转换为整数类型。char operator = matcher.group(2).charAt(0);
使用group()
方法获取运算符,并将其转换为字符类型。int num2 = Integer.parseInt(matcher.group(3));
使用group()
方法获取第二个运算数,并将其转换为整数类型。
2.3 进行四则运算
接下来,我们需要根据运算符进行四则运算,并得到运算结果。下面是相关代码:
public class Main {
public static void main(String[] args) {
// ...省略前面的代码...
// 进行四则运算
int result;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
System.out.println("不支持的运算符!");
return;
}
// 进行下一步操作
}
}
代码解释:
int result;
定义一个变量用于存储运算结果。switch (operator) {
根据运算符进行分支判断。case '+':
如果运算符为加号,则执行加法运算。case '-':
如果运算符为减号,则执行减法运算。case '*':
如果运算符为乘号,则执行乘法运算。case '/':
如果运算符为除号,则执行除法运算。default:
如果运算符为其他字符