赞一个:
- /*
- * 要求:用Java代码实现一个简单的计算器(实现加减乘除功能),
- * 操作过程如下:
- * 用户在控制台中输入第一个数,
- * 然后系统自动提示用户选择操作(加、减、乘、除、计算)项,
- * 然后让用户输入第二个数字,
- * 然后系统自动提示用户选择操作项....以此类推。
- * 等一个计算完成后提示用户是退出还是继续使用。
- * */
- import java.util.Scanner;
- public class Calculator {
- private static boolean flag = true;
- public static void main(String[] args) {
- myCal();
- // System.out.println(addBracket("3.0+5.0*7.0/2.0"));
- }
- /**
- * 需要记住上次的运算结果,记住上一次的运算符。
- */
- private static void myCal() {
- StringBuilder sb = new StringBuilder();
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入数字:");
- double result = Double.valueOf(sc.nextLine());
- sb.append(result);
- System.out.println("请选择要进行的操作:加(+)、减(-)、乘(*)、除(/)");
- String operator = null;
- operator = sc.nextLine();
- sb.append(operator);
- while (true) {
- System.out.println("请输入数字:");
- double thisNo = Double.valueOf(sc.nextLine());
- sb.append(thisNo);
- switch (operator) {
- case "+":
- result += thisNo;
- break;
- case "-":
- result -= thisNo;
- break;
- case "*":
- result *= thisNo;
- break;
- case "/":
- result /= thisNo;
- break;
- }
- System.out.println("请选择要进行的操作:加(+)、减(-)、乘(*)、除(/)、计算(p)");
- operator = sc.nextLine();
- if ("p".equals(operator)) {
- System.out.println(addBracket(sb.toString()) + "=" + result);
- break;
- }
- sb.append(operator);
- }
- }
- public static String addBracket(String str) {
- String s = str.replaceAll("([\\+\\-\\*/])(\\d+\\.\\d+)", "$1$2\\)");
- int count = s.split("\\)").length;
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < count; i++) {
- sb.append("\\(");
- }
- String regex = sb + "$1";
- String ss = s.replaceFirst("(\\d)", regex);
- return ss;
- }
- }
复制代码 |