Java數學表示式解析工具 jeval

2021-09-07 05:49:22 字數 1336 閱讀 5335

這個包能夠為我們提高高效的數學表示式計算。

舉個樣例:這個是我們策劃給出的遊戲命中率的一部份計算公式

是否命中=a命中率 – (b等級 – a等級) * (命中係數(6)* b閃避率 / 100)+32

為了好看點,我們把他變成:ahit-(blv-alv)*(6*beva/100)+32

jeval就是用在這樣的情況下的!!!!

public class evaltest 

private static void testjeval() throws exception + sin(#)";

// compile

evaluator eva = new evaluator();

eva.putvariable("x", double.tostring(x_value));

eva.putvariable("y", double.tostring(y_value));

// evaluate

double result = double.parsedouble(eva.evaluate(exp));

system.out.println(result);//-> 2.0 }

public static void testjeval2()-(#-#)*(6*#/100)+32";

evaluator eva = new evaluator();

try "));

system.out.println(eva.evaluate("#"));

system.out.println(eva.evaluate("#"));

system.out.println(eva.evaluate("#"));*/

//公式計算

system.out.println(eva.evaluate(exp));

} catch (exception e) }

public static void testjeval3() catch (exception e) }

public static string formatexpression(string exp)包裝:如變數x,#

string re = "([a-za-z]+)";

pattern pattern = pattern.compile(re);

matcher matcher = pattern.matcher(exp);

stringbuffer sb = new stringbuffer();

while(matcher.find())

return sb.tostring();

}}

Java數學表示式解析工具 jeval

這個包可以為我們提高高效的數學表示式計算。舉個例子 這個是我們策劃給出的遊戲命中率的一部份計算公式 是否命中 a命中率 b等級 a等級 命中係數 6 b閃避率 100 32 為了好看點,我們把他變成 ahit blv alv 6 beva 100 32 jeval就是用在這種情況下的 public ...

數學計算表示式解析

最近在寫乙個計算器的專案,其中最麻煩的就是數學表達試的解析,用c語言解決問題,每一步基本都要自己實現,非常鍛鍊邏輯能力。用了將近兩個晚上的時間,終於完成了大部分表示式的解析,寫這篇文章來記錄下遇到的問題。涉及到二維指標。主要思想和這篇部落格中的一樣 首先進行括號代換,就是將括號中的表示式單獨計算出來...

數學表示式

只做 1或者2操作,使得給定乙個目標數,乙個初始數,使得初始數到目標數的步驟最短。23 52 1 2 1 113 11 1 1 1 222 1 先判斷目標數字和原始數字的大小,然後在判斷目標數是否為奇數,若是,則 1變成偶數在遞迴,在判斷原始數 2是否大於目標數,若不大於,則做乘2的操作。若小於則不...