增加String中的数字值

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

我不认为你可以用一个简单的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(); 

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

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

编辑2:根据Matcher类的要求将StringBuffer更改为StringBuffer

我倾向于做这样的事情

 string testString = new string("test{0}check{1}"); for (int testCount = 0; testCount < 10; testCount++) { for (int checkCount = 0; checkCount < 10; checkCount++) { console.WriteLine(string.FormatString(testString, testCount, checkCount)); } } 

我知道现在已经回答了这个问题,但是为了解决这些问题,用Java可以做到这一点:

 for (int testCount = 0; testCount < 10; testCount++) { for (int checkCount = 0; checkCount < 10; checkCount++) { String s = String.format("test%scheck%s", testCount.ToString(), checkCount.ToString()); } }