在分割字符后获取字符串中的特定数字

时间:2017-04-26 09:04:04

标签: c#

如果我有像“(10/0)+(29 / 0.0)+(10 / 0.1)”这样的公式作为字符串,我想要抛出 devide by zero 异常。对于这种情况,我必须解析字符串并检查除法字符过去的所有数字。

如何通过功能解决这个问题?

2 个答案:

答案 0 :(得分:0)

作为一个开始建议,您可以使用ScriptEngine类将其评估为JS表达式:

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

然后提出适当的例外。

答案 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    
}
相关问题