将字符串中的每个数字增加1

时间:2014-07-01 13:57:38

标签: java

private static void getMethod(String input) {

    Matcher matcher = Pattern.compile("(\\d)").matcher(input);
    StringBuffer sb = new StringBuffer();

    while (matcher.find()) {
        matcher.appendReplacement(sb,
                String.valueOf(Integer.parseInt(matcher.group(1)) + 1));
    }
    matcher.appendTail(sb);
    System.out.println(sb.toString());

}

请解释以下几行......我没有得到......

Pattern.compile("(\\d)");

while (matcher.find()) {
matcher.appendReplacement(sb, String.valueOf(Integer.parseInt(matcher.group(1)) + 1));
}
matcher.appendTail(sb);

1 个答案:

答案 0 :(得分:0)

Pattern.compile("(\\d)");

这是一个简单的regexpr,其中的组将匹配数字(组从1开始计算,而groupe由()指定,count从左侧开始。)

\ d - [0-9]

的简短版本
while (matcher.find()) {

这是对字符串中所有数字的简单循环。这部分将匹配数字并将其放入组中。

matcher.appendReplacement(sb, String.valueOf(Integer.parseInt(matcher.group(1)) + 1));

这个有点难。

它将匹配字符串中的所有字符放入sb中,并替换它停止的部分字符。

String.valueOf(Integer.parseInt(matcher.group(1)) + 1)

这需要字符串版本的数字(由find匹配)将其解析为int,添加1,并解析回String

Sory任何词汇错误