3

私はこのコードを持っています:

String polynomial = "2x^2-4x+16";
String input = polynomial.replaceAll("[0-9a-zA-Z][-]", "+-");

[0-9a-zA-Z]問題は、実際に文字を置き換えたくないことです。

以前は使用polynomial.replace("-","+-");していましたが、負の累乗で誤った出力が得られました。

新しい基準[0-9a-zA-Z][-]は、負の電力の問題を解決します。ただし、その文字を削除せず+に前に挿入するだけでよい場合は、文字を置き換えます。-

次のように削除された文字を使用して、このパターンを置き換えるにはどうすればよいですか。

polynomial.replaceAll("[0-9a-zA-Z][-]", c+"+-");

ここで、「c」はその[0-9a-zA-Z]文字を表します。

4

1 に答える 1

4

これにはグループを使用できます。

polynomial.replaceAll("([0-9a-zA-Z])[-]", "$1+-");

$1括弧内の最初のものを指します。

Java 正規表現リファレンス.

于 2013-07-09T22:54:01.807 に答える