6
6*x + 7 = 7*x + 2 - 3*x

方程式の右辺を左に移動するときは、演算子の符号を+から-に、またはその逆に反転する必要があります。

java regexを使用replaceAllすると、すべての+を-に置き換えることができます。その結果、すべての演算子記号が-になり、すべての+を復元できなくなります。

回避策として、文字列を繰り返し処理し、文字列に遭遇したときに+を-に変更します。その逆も同様です。しかし、Javaで正規表現を使用してブール値のペアを切り替える方法があるかどうかはまだ疑問です。

4

2 に答える 2

10

あなたはこのトリックを使うことができます:

String equation = "<Your equation>"
equation = equation.replaceAll("+","$$$");
equation = equation.replaceAll("-","+");
equation = equation.replaceAll("$$$","-");

$$$があなたの方程式に含まれていないと仮定します。

于 2012-12-03T09:46:10.733 に答える
0

PHP では、次のことができます。

function swap($m) {
    return ($m[0]=='-')?'+':'-';
}
echo preg_replace_callback( '(\+|\-)', 'swap', '1 + 2 - 3 + 4 - 5');
于 2012-12-03T10:19:17.940 に答える