JAVA計(jì)算數(shù)字表達(dá)式的值:
- 利用JS來計(jì)算:
try {
String s = "900000/(-(-200000-1000000-1000000))" ;//2200000
ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript" );
System. out.println(jse.eval(s).toString());
} catch (ScriptException e) {
throw new IllegalArgumentException("計(jì)算錯(cuò)誤",e);
}
- 利用棧來計(jì)算 參考 棧計(jì)算表達(dá)式:
- 將所有的數(shù)字放入List中(優(yōu)先級別最高的放在最后)傲茄,然后將運(yùn)算符放入棧中(便于剔除左右括號)绊困,運(yùn)算符級別最高的放在首位(最后直接拼接進(jìn)List,優(yōu)先級高的先運(yùn)算)。將棧剔除左右括號蜜宪,拼接進(jìn)List豹储。
- 在計(jì)算時(shí),將數(shù)值全部放進(jìn)一個(gè)新棧坏匪,遍歷剩下的list(全是運(yùn)算符)拟逮,此時(shí)每次計(jì)算完都要把計(jì)算結(jié)果push()放進(jìn)棧尾。便于pop()直接取出來适滓。