A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 钟伟杰 于 2013-4-22 15:28 编辑

      
//下面是基础视频给出的功能代码。
       public static String getMexSubString(String s1,String s2)
       {
              for(int x=0;x<s2.length();x++)
              {
                     for(int y=0;z=s2.length-x;z!=s2.length()+1;y++,z++)
                     {
                            String temp = s2.substring(y,z);

                            if(s1.contains(temp))
                                   return temp;
                     }
              }
              return "";
       }

不明白第二个for循环内的判断条件z!=s2.length()+1;是什么意思?看了多次视频都懂,求解释。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

倒序浏览
z!=s2.length()+1;是一个循环终止条件,z最大取值为s2.length().
当z=s2.length()时,String temp = s2.substring(y,z)中temp可以取到的最后一个元素位为z-1,即s2.length()-1,就是s2中的最后一个元素。
如果z=s2.length()+1,则最后一个元素位为s2.length(),显然角标越界了。所以z!=s2.length()+1
  

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
hdsjsql 发表于 2013-4-22 12:24
z!=s2.length()+1;是一个循环终止条件,z最大取值为s2.length().
当z=s2.length()时,String temp = s2.su ...

明白了,非常感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马