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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码如下,我想问得的是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));
        }

2 个回复

正序浏览
你输入的两个字符串s1和s2具有随机性,如果s1和s2没有相同的字符串,
if(max.contains(str))
     return str;
上边的if条件不满足,那虚拟机就不会执行return语句,也就读不到return语句,它当然就认为你写的程序没有返回语句。
希望这样说你能明白,呵呵
回复 使用道具 举报
s1="abcdefg";
s2="hijklmn";
此时两个字符串最大相同字符串为空,循环里面不返回值
懂?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马