2012-08-16 374 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; 
}