Я тестирую небольшую заглушку класса Matcher и Pattern... см. следующий небольшой заглушка.
package scjp2.escape.sequence.examples;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Sample_19 {
public static void main(String a[]){
String stream = "ab34ef";
Pattern pattern = Pattern.compile("\\d*");
//HERE * IS GREEDY QUANTIFIER THAT LOOKS FOR ZERO TO MANY COMBINATION THAT
//START WITH NUMBER
Matcher matcher = pattern.matcher(stream);
while(matcher.find()){
System.out.print(matcher.start()+matcher.group());
}
}
}
Здесь... наша строка, которую мы сравниваем, - "ab34ef". которая имеет длину 6.
Noe позволяет видеть итерацию...
Итерация NO matcher.start() matcher.group()
1 0 ""
2 1 ""
3 2 34
4 4 ""
5 5 ""
Теперь.. комбайт... matcher.start() + matcher.group().... выход по нашему расчёту: 0123445
Но, заглушка генерирует 01234456.
Я не могу понять, откуда идет "6". Индекс строк начинается с нуля, и поэтому здесь может быть максимальный индекс 5.So от того, где 6 идет?
Итерации по циклу шесть раз... Как? Любое предложение?