黑马程序员技术交流社区

标题: 获取两个字符串中最大相同字符串的一个小问题,求解释 [打印本页]

作者: 王利强    时间: 2012-3-16 09:45
标题: 获取两个字符串中最大相同字符串的一个小问题,求解释
代码如下,我想问得的是getsubstring函数中的return "";代码有什么作用,我编码的时候没有写,jvm提示我编译失败,缺少返回语句,但我的return str;不就是返回语句么?求解释
public static String getsubstring(String s1,String s2)
        {        String max="",min="";
                max=(s1.length()>s2.length())?s1:s2;
                min=(max==s1)?s2:s1;
                for (int x=0;x<min.length() ;x++ )
                {        for (int y=0,z=min.length()-x;z!=min.length()+1 ;y++,z++ )
                        {
                                String str=min.substring(y,z);
                                if(max.contains(str))
                                        return str;
                        }
                }       
                                return "";
        }
        public static void main (String[] args)
        {
                String s1="dfjdlgjladoieiuohello0";
                String s2="hello0dfjlangngaolu";
                System.out.println(getsubstring(s1,s2));
        }
作者: 李飞    时间: 2012-3-16 11:16
s1="abcdefg";
s2="hijklmn";
此时两个字符串最大相同字符串为空,循环里面不返回值
懂?
作者: 刘元明    时间: 2012-3-16 16:03
你输入的两个字符串s1和s2具有随机性,如果s1和s2没有相同的字符串,
if(max.contains(str))
     return str;
上边的if条件不满足,那虚拟机就不会执行return语句,也就读不到return语句,它当然就认为你写的程序没有返回语句。
希望这样说你能明白,呵呵




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