黑马程序员技术交流社区
标题:
碰到了这个,有点不解
[打印本页]
作者:
qmlovewhr
时间:
2013-7-3 22:14
标题:
碰到了这个,有点不解
本帖最后由 杜光 于 2013-7-4 10:23 编辑
for(int x=0;x<min.length();x++)
{
for(int y=0,z=min.length()-x;z!=min.length()+1;y++,z++)
{
String temp=s2.substring(y,z);
// sop(temp);
if(max.contains(temp))
return temp;
怎么理解两个循环中的内容,让人更容易接受些?
作者:
王靖远
时间:
2013-7-3 22:20
你可以往里面带入。当x=0时,只看内循环是什么样的,再当X=1时,内循环是什么样的。这样就能看明白代码了。
作者:
王洪波
时间:
2013-7-3 22:32
本帖最后由 王洪波 于 2013-7-3 22:34 编辑
我改变下形式,以便于理解:
for(int x=0;x<min.length();x++)
{
int y=0,z=min.length()-x;//初始化变量
while(z!=min.length()+1)//循环条件
{
String temp=s2.substring(y,z);
// sop(temp);
if(max.contains(temp))
return temp;
//改变迭代量
y++;
z++;
复制代码
作者:
enmoor
时间:
2013-7-3 23:41
由代码可以看出,min、max和s2应该是字符串数组。min.length是求字符串长度的,假设其值为10,即代码如下
for(int x=0;x<10;x++)//
{
for(int y=0,z=10-x;z!=10+1;y++,z++)
{
String temp=s2.substring(y,z);
// sop(temp);
if(max.contains(temp))
return temp;
现在开始运行:
x=0时,y=0,z=10,由于“z不等于10+1”这一条件成立,所以继续。定义字符串变量temp,其值等于s2这个数组中下标为y到下标为z之间的字符,这块了解不?sop(temp),这里sop是你定义的方法,可以理解为子函数,temp是参数。再往下是if语句,如果max这个数组里有temp字符串,返回这个字符串。
总结来说,就是比较s2和max这两个字符串数组中有没有相同的字符串,输出字符串。
不好意思,由于没看到完整代码,以上均属个人理解,如有偏颇错误,望指正,谢谢!
作者:
王广亚
时间:
2013-7-3 23:58
for(int x=0;x<min.length();x++){
int y=0; //把y从内for循环条件语句里提取出来放在外边是一样的
for(int z=min.length()-x;z!=min.length()+1;z++){
String temp=s2.substring(y,z);
// sop(temp);
if(max.contains(temp))return temp;
y++; //y++也提取出来了、
}
}
}
复制代码
如果这样写的话楼主是不是看着感觉舒服些?
作者:
杨兴庭
时间:
2013-7-4 07:36
为了更好的维护论坛的学习氛围,如果您的的问题“已经解决”请即时将帖子状态改成“已解决”
-------------------坚持学习,黑马因你而精彩---------------
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2