class ContinueWithLabelDemo{
public static void main(String[] args) {
String searchMe = "Look for a substring in me";
String substring = "sub";
boolean foundIt = false;
int max = searchMe.length() - substring.length();
test:
for(int i = 0; i <= max; i++){
int n = substring.length();
int j = i;
int k = 0;
while(n-- != 0){
if(searchMe.charAt(j++) != substring.charAt(k++)){
continue test;
}
}
foundIt = true;
break test;
}
System.out.println(foundIt ? "Found it" : "Didn't find it");
}
}
java中continue语句,在主串中匹配字串,那个双层嵌套不是很懂,有大神帮解释下吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 for循环每一次都是for(int i = 0;i<=23;i++),都要执行24次。关键的while循环,n=3(子串的长度),只要n不等于0(也就是说要循环子串每个字符),就去判断主串是否跟子串的字符相等,如果相等就循环判断子串的每一个位置的字符,直到遍历子串结束为止(while循环干的),foundIt为true(找到了),break test跳出test,程序结束。如果不相等,则说明当前位置的主串字符跟子串字符不同,则continue test,继续执行for循环(此时i++了,也就是取主串下一个字符了),直到判断主串结束为止。
我上面说的可能还是不明白,建议自己设置断点,调试,看下每一步值的变化。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 请问一下这个运行结果是怎么来的
- ¥15 单通道放大电路的工作原理
- ¥30 YOLO检测微调结果p为1
- ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
- ¥15 DS18B20内部ADC模数转换器
- ¥15 做个有关计算的小程序
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
- ¥15 setInterval 页面闪烁,怎么解决
- ¥15 如何让企业微信机器人实现消息汇总整合