2017-04-26 44 views
-2

如果我有一个像“(10/0)+(29/0.0)+(10/0.1)”这样的字符串,我想抛出一个除零异常。对于这种情况,我必须解析字符串并检查分隔字符过去的所有数字。得到字符串后的字符串的具体数字

我该如何解决这个功能?

+0

而你的问题是? –

+0

Sry,忘记了=( – Patrik

回答

0

作为起始的建议,你可以使用的ScriptEngine类,以它作为评价一个JS表达式:

ScriptEngineManager manager = new ScriptEngineManager(); 
ScriptEngine engine = manager.getEngineByName("js"); 
Object result = engine.eval("(10/0) + (29/0.0) + (10/0.1)"); 

然后提高适当的异常。

0

这会抛出DivideByZero异常,否则会返回结果。

try 
{ 
    System.Data.DataTable dt = new System.Data.DataTable(); 
    var result = dt.Compute("(10/0) + (29/0.0) + (10/0.1)", ""); 
    //Work with further result here 
} 
catch(System.DivideByZeroException e) 
{ 
    //Your exception here  
}