快捷导航

关于m.start(0)和m.end(0)的问题

importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassText{publicstaticvoidmain(String[]args){Patternp=Pattern.compile("b");Matcherm=p.matcher("hibuddy!Howisbill?");while(m.find()){System.out.println("Matchstartedat:"+m.start(0));System.out.println("Matchendedat:"+m.end(0));}}}运行结果:Match started at:3Match ended at:4Match started at:17Match ended at:18请求大神讲一下17和18是怎么得来的呀

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

findpublic boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。 此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。 如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 返回:当且仅当输入序列的子序列匹配此匹配器的模式时才返回 true。while循环中的find方法第一次调用,输出了前两行,接着循环继续,第二次调用时因为matcher匹配器没有重置,find方法匹配第二个“b”,所以输出了第三第四行结果。
回复

使用道具 举报

第二个 b 所在的索引?
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP