6*x + 7 = 7*x + 2 - 3*x
當我們將右邊移到等式左邊時,我們需要將運算符符號從+移到 - 反之亦然。是否可以在+和 - 之間切換在Java中使用正則表達式?
使用java正則表達式replaceAll
,我們可以用-s替換所有的+。結果,所有的操作員標誌都變成了 - ,使我們無法恢復所有的+。
作爲一種解決方法,我遍歷字符串並將+更改爲 - 遇到一個時,反之亦然。但我仍然想知道是否有辦法在Java中使用正則表達式在布爾值對之間進行切換?
6*x + 7 = 7*x + 2 - 3*x
當我們將右邊移到等式左邊時,我們需要將運算符符號從+移到 - 反之亦然。是否可以在+和 - 之間切換在Java中使用正則表達式?
使用java正則表達式replaceAll
,我們可以用-s替換所有的+。結果,所有的操作員標誌都變成了 - ,使我們無法恢復所有的+。
作爲一種解決方法,我遍歷字符串並將+更改爲 - 遇到一個時,反之亦然。但我仍然想知道是否有辦法在Java中使用正則表達式在布爾值對之間進行切換?
您可以使用這一招:
String equation = "<Your equation>"
equation = equation.replaceAll("+","$$$");
equation = equation.replaceAll("-","+");
equation = equation.replaceAll("$$$","-");
假設$$$是不是在你的公式。
在PHP中可以做到以下幾點:
function swap($m) {
return ($m[0]=='-')?'+':'-';
}
echo preg_replace_callback('(\+|\-)', 'swap', '1 + 2 - 3 + 4 - 5');
對於JAVA:http://stackoverflow.com/questions/375420/java-equivalent-to-phps-preg-replace-callback – TomTom
你真的不應該與正則表達式的數學公式的工作。使用標記器並使用標記。 –
從字符串中生成語法樹,在樹上操作,然後渲染回字符串。更少麻煩,更不容易出錯。 – Cubic