所以,我有一些带有数字和另一个符号的字符串,我希望将每个数字的值增加到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:更改StringBuilder到StringBuffer所要求的Matcher类.
| 归档时间: |
|
| 查看次数: |
5974 次 |
| 最近记录: |