start()
との定義で Matcher に関する Java doc と少し混乱していますend()
。
次のコードを検討してください。
public static void test()
{
String candidate = "stackoverflow";
Pattern p = Pattern.compile("s");
Matcher m = p.matcher(candidate);
m.find();
int index = m.start();
out.println("Index from Match\t"+index);
int offset = m.end();
out.println("Offset from match\t"+offset);
}
上記は、次の結果を返します。
マッチ 0 からのインデックス
マッチ 1 からのオフセット
私が学んだように、すべての char 配列または文字列はインデックス 0 で始まり、それは上記の式に当てはまります。しかし、Offset も同じ文字 's' を返しますが、なぜ 1 で始まるのでしょうか?