黑马程序员技术交流社区

标题: 关于数组 [打印本页]

作者: 雾里看花。    时间: 2014-10-5 17:24
标题: 关于数组
获取两个字符串中最大相同的子串,为何我运行结果是“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;
        }

}



作者: 希筱诺    时间: 2014-10-5 20:51
  if(s1.indexOf(temp)!=1)这里是   !=-1    负1
作者: 雾里看花。    时间: 2014-10-6 09:53
希筱诺 发表于 2014-10-5 20:51
if(s1.indexOf(temp)!=1)这里是   !=-1    负1

还是不对    我是根据毕老师视频里的代码敲的 就是运行不对   
作者: Huberry    时间: 2014-10-6 10:54
本帖最后由 Huberry 于 2014-10-6 10:59 编辑

if(s1.indexOf(temp)!=1);{ //此处多了个分号,这条语句判断玩就结束了,下面的return一定会执行,所以一次就返回s2,
                                          //并且判断条件得改,s1.indexOf(temp)!=-1
return temp;
}

作者: 雾里看花。    时间: 2014-10-6 17:39
Huberry 发表于 2014-10-6 10:54
if(s1.indexOf(temp)!=1);{ //此处多了个分号,这条语句判断玩就结束了,下面的return一定会执行,所以一次 ...

3Q    已经解决  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2