3

I have this code:

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

The problem is I don't want to actually replace the [0-9a-zA-Z] char.

Previously, I had used polynomial.replace("-","+-"); but that gave incorrect output with negative powers.

The new criteria [0-9a-zA-Z][-] solves the negative power issue; however it replaces a char when I only need to insert the + before the - without deleting that char.

How can I replace this pattern using the char removed like:

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

where 'c' represents that [0-9a-zA-Z] char.

4

1 回答 1

4

You can use groups for this:

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

$1 refers to the first thing in brackets.

Java regex reference.

于 2013-07-09T22:54:01.807 回答