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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雾里看花。 中级黑马   /  2014-10-5 17:24  /  1316 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

获取两个字符串中最大相同的子串,为何我运行结果是“maxsub=cctvo
”为什么不是cctv这个字符串呢
public class StringTest1 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                        String s1 = "erecctvwwqs";
                        String s2 = "cctvo";
                       
                        String maxsub =getMaxSubstring(s1,s2);       
                        System.out.println("maxsub="+maxsub);
        }
        public static String getMaxSubstring(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);
                               
                                //System.out.println(temp);
                                if(s1.indexOf(temp)!=1);{
                                       
                                        return temp;
                                }
                        }
                }
                return null;
        }

}


评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

4 个回复

倒序浏览
  if(s1.indexOf(temp)!=1)这里是   !=-1    负1
回复 使用道具 举报
希筱诺 发表于 2014-10-5 20:51
if(s1.indexOf(temp)!=1)这里是   !=-1    负1

还是不对    我是根据毕老师视频里的代码敲的 就是运行不对   
回复 使用道具 举报
本帖最后由 Huberry 于 2014-10-6 10:59 编辑

if(s1.indexOf(temp)!=1);{ //此处多了个分号,这条语句判断玩就结束了,下面的return一定会执行,所以一次就返回s2,
                                          //并且判断条件得改,s1.indexOf(temp)!=-1
return temp;
}
回复 使用道具 举报
Huberry 发表于 2014-10-6 10:54
if(s1.indexOf(temp)!=1);{ //此处多了个分号,这条语句判断玩就结束了,下面的return一定会执行,所以一次 ...

3Q    已经解决  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马