2012-08-16 384 views
1

我有用户输入数字到EditText字段中,但我希望他们能够输入的字段也是100 + 32 + 10。我只期望简单的表达,共同的四个功能。事实上,只是增加也会削减它。Android:从字符串解析简单的数学公式

只是另外,我想这不会很难分割字符串,我自己做,但我很想知道是否有一个库可以做我想要的更干净。

有什么建议吗?

+1

如果你只是做加法,我只想用'string.split()'。它将为此节省导入整个库的麻烦。如果你打算扩展到其他功能,你会想要查看正则表达式或下面的一个库。 – Eric 2012-08-16 19:23:55

+0

@Eric,我认为你是对的。斯普利特似乎是最简单的方法。谢谢。 – capcom 2012-08-16 19:41:39

回答

2

有大量的Java表达库。

我在Android上使用JEXL没有问题,但还有很多其他选项。

完整的EL可能超过您的需要;基本上全世界的每个人都写了简单的表达式解析器,这些解析器可能足以满足您的需求,或者自己推出一个快速解析器。

1

只是为了让大家知道,我解决我的问题通过写这几行代码:

public float calculateBillAmount(String expression){ 

    String delim = "\\+"; 
    String[] stringTokens = expression.split(delim); 
    float result = 0; 

    for (int i = 0; i < stringTokens.length; i++) { 
     result += Float.parseFloat(stringTokens[i]); 
    } 

    return result; 
}