匹配一个
15+45/58*52 这样的字符, 1.必须以数字开头,开始和结尾不能出现 + - * /
2.数字与数字之间需要有运算符号,
3.运算符号不能连续出现,但是可以使用 -(+5)
15+45/58*52 这样的字符, 1.必须以数字开头,开始和结尾不能出现 + - * /
2.数字与数字之间需要有运算符号,
3.运算符号不能连续出现,但是可以使用 -(+5)
调试欢乐多
args='(25+89/25*45)-20'
计算出这个结果来.
import java.io.InputStreamReader;
import java.util.Scanner;import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;public class EvalExpression
{
public static void main(String[] args)
{
try
{
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
System.out.println("please input your expression:");
String exp = b.readLine();
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine eng = factory.getEngineByName("javascript");
System.out.println(eng.eval("eval(" + exp + ")"));
} catch (Exception ex)
{
ex.printStackTrace();
}
}}直接计算你的表达式值