import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.util.Scanner;
public class UpgradesCounter {
public static void main(String[] args) throws ScriptException {
// 直接输入四则如: 1+2*3/1
Scanner sc = new Scanner(System.in);
String reg = "(()|(\\d+)|(-\\d+))(([\\+\\-\\*\\/])|([\\+\\-\\*\\/]\\d+))+"; //四则运算正则表达,计算的复杂度看正则支不支持
System.out.println("欢迎使用银河计算器_V3.0_plus");
System.out.println("\t\t\t ---退出请输入Q,重新输入请输入T");
System.out.println("请输入您的运算: ");
while (true) {
String s = sc.next();
if ("q".equals(s) || "Q".equals(s)) {
System.out.println("感谢使用,goodbye!");
break;
} else if ("t".equals(s) || "T".equals(s)) {
System.out.println("请重新输入您的运算: ");
} else if (s.matches(reg)) {
//面向对象: 将字符串转成表达式,变成四则运算
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval(s);
System.out.print("您的计算: ");
System.out.printf("%s = %s \r\n\n", s, result);
System.out.print("计算结束.退出请输入Q,再次计算请直接输入运算:");
} else {
System.out.println("您的输入有误,请重新输入您的运算: ");
}
}
}
}
四则运算程序(java)
最新推荐文章于 2023-02-23 20:48:58 发布