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:如果运算符为其他字符