2016-11-25 13 views
0

私の英語は申し訳ありません。Javaの式を確認してください。

言語C#:C#でのコードの上

using LV.Parsenet.dll; 

var result = "IF(TL_HS_NGUNG_LUONGKY1 = 1, 0, TL_HS_K_DC_KY1 * NS_HSL * TL_HS_TL_TTDV)"; 
Parser m_cParser = new Parser(); 
ExpressionTree m_oExpressionTree = null; 

try 
{ 
    m_oExpressionTree = m_cParser.Parse(result); 
} 
catch (Exception ex) 
{ 
    ex.Message(); 
} 

、方法解析チェック入力パラメータ質問を更新しました。そして、私は公式の文字列がtrueまたはfalseを返すことを知るでしょう。私はlv.parsenet.dllを使用しています。
ここで私はのようなライブラリを見つけることができます。

おかげでみんな

+0

不明な質問。 – MVCNoob

+0

これをチェックしてください。詳細情報を追加してください – grsdev7

+0

Hey Quanは、すでに述べたように、あなたの質問はいくぶん不明です。改善方法については、ヘルプセンターの[質問]記事をご覧ください。 – Gulllie

答えて

0

それは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)); 

} 
関連する問題