增加String中的数字值

Le_*_*eur 4 java regex

所以,我有一些带有数字和另一个符号的字符串,我希望将每个数字的值增加到1.例如:来自此字符串的"test1check2"我希望收到"test2check3".我可以用方法"replaceAll"来制作吗?(i.replaceAll("\ d",...)类似的东西)?,不使用像indexOf,charAt这样的方法......

Adr*_*onk 10

我不认为你可以用一个简单的replaceAll(...)来做,你必须写几行,如:

Pattern digitPattern = Pattern.compile("(\\d)"); // EDIT: Increment each digit.

Matcher matcher = digitPattern.matcher("test1check2");
StringBuffer result = new StringBuffer();
while (matcher.find())
{
    matcher.appendReplacement(result, String.valueOf(Integer.parseInt(matcher.group(1)) + 1));
}
matcher.appendTail(result);
return result.toString();
Run Code Online (Sandbox Code Playgroud)

这里可能存在一些语法错误,但它会起作用.

编辑:您评论说每个数字必须单独递增(abc12d - > abc23d),因此模式应该从(\\ d +)更改为(\\ d)

编辑2:更改StringBuilderStringBuffer所要求的Matcher类.