それはjavascriptの表現になっているのであなたが
(TL_HS_NGUNG_LUONGKY1 == 1)? 0: TL_HS_K_DC_KY1 * NS_HSL * TL_HS_TL_TTDV;
として、あなたの表現を書き換えることができ、あなたは
public static void main(String[] args) throws ScriptException, MalformedURLException, IOException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.getContext();
engine.eval("TL_HS_NGUNG_LUONGKY1=10");
engine.eval("TL_HS_TL_TTDV=10");
engine.eval("TL_HS_K_DC_KY1=20");
engine.eval("NS_HSL=20");
Object result = engine.eval("(TL_HS_NGUNG_LUONGKY1 == 1)? 0: TL_HS_K_DC_KY1 * NS_HSL * TL_HS_TL_TTDV;");
System.out.println(result);
}
それともShy-と呼ばれる外部ライブラリを使用し、次のようにそれを使用することができますTa
public static void main(String[] arg){
ExpressionsEvaluator evalExpr = new ExpressionsBuilder("IF(TL_HS_NGUNG_LUONGKY1 == 1, 0, TL_HS_K_DC_KY1 * NS_HSL * TL_HS_TL_TTDV)").build();
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("TL_HS_NGUNG_LUONGKY1", 10);
variables.put("TL_HS_K_DC_KY1", 10);
variables.put("NS_HSL", 1);
variables.put("TL_HS_TL_TTDV", 12);
System.out.println(evalExpr.eval(variables));
}
不明な質問。 – MVCNoob
これをチェックしてください。詳細情報を追加してください – grsdev7
Hey Quanは、すでに述べたように、あなたの質問はいくぶん不明です。改善方法については、ヘルプセンターの[質問]記事をご覧ください。 – Gulllie