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 です。
いいえ、繰り返しを見てみましょう...
反復 NO matcher.start() matcher.group()
1 0 ""
2 1 ""
3 2 34
4 4 ""
5 5 ""
ここで..結合...matcher.start() + matcher.group()....計算による出力は次のとおりです:0123445
ただし、スタブは 01234456 を生成します。
「6」がどこから来ているのか理解できません。文字列インデックスはゼロから始まるため、ここでは最大インデックスが 5 になる可能性があります。6 はどこから来るのでしょうか??
ループを6回繰り返します..どのように?なにか提案を ?