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);
答案 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任何词汇错误