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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马林贺 中级黑马   /  2012-6-3 11:55  /  1522 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public static String getMaxSubString(String s1, String s2) {

  2.             String max=(s1.length()>s2.length())? s1:s2;
  3.             String min=(max==s1)? s2:s1;
  4.             for(int x=0;x<min.length();x++)
  5.            {
  6.                  for(int j=0, i=min.length()-x<FONT color=red>;i!=min.length()+1</FONT>;j++,i++)
  7.           {
  8.                 String temp=min.substring(j,i);
  9.                if(max.indexOf(temp)!=-1)
  10.          {
  11.               return temp;
  12.          }
  13.         }

  14.         }

  15.        return "";
  16.        }
复制代码
疑惑:內循環的判斷的條件爲什麽是min.length()+1呢,有點不理解。

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

4 个回复

倒序浏览
楼主你好    这是我以前的回答过的帖子   希望对你能有帮助。
http://bbs.itheima.com/forum.php ... amp;page=1#pid89335
回复 使用道具 举报
避免角標越界...
回复 使用道具 举报
因为substring(j,i);方法去字符串的时候是“包头不包尾”,这里从j开始取,但是取不到 i,所以i!=min.length()+1中设置 i 最大取值多1
回复 使用道具 举报
嗯 明白了,如果是  min.length()的话,每次取到的字符串,就会少一个吧。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马