为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

java小学三班 2017-01-04 00:13:45
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Text { public static void main (String [] args) { Pattern p = Pattern.compile ("b"); Matcher m = p.matcher("hi buddy! How is bill?"); while (m.find ()) { System.out.println ("Match started at:"+ m.start(0)); System.out.println ("Match ended at:"+m.end(0)); } } }运行结果:Match started at:3Match ended at:4Match started at:17Match ended at:18请求大神讲一下17和18是怎么得来的呀
查看完整描述

3 回答

?
皇4

TA贡献2条经验 获得超1个赞

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

TA贡献564条经验 获得超863个赞

第二个 b 所在的索引?

查看完整回答
反对 回复 2017-01-04
  • 3 回答
  • 0 关注
  • 1452 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信