KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am testing a small stub of Matcher and Pattern class...see the following small stub.. 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()); } } } Here ...our string which we are comparing is "ab34ef". which is of length 6. Noe let see the iteration... Iteration NO matcher.start() matcher.group() 1 0 "" 2 1 "" 3 2 34 4 4 "" 5 5 "" Now ..let combine...matcher.start() + matcher.group().... the output as per our calculation is : 0123445 But, the stub generates 01234456. I am not able to understand from where the "6" is coming. String index starts from zero and so here there can be maximum index is 5.So from where 6 is coming?? It iterates over the loop six times..How ? Any suggestion ?
Tags (comma-separated)
Save Edits
Cancel