因为你的方法 public static String getMaxSubString(String s1,String s2){} 要求返回值为String.虽然在for循环中已经 return temp;但是,如果你不返回return "";编译器是不会通过编译的.
为什么呢?因为对编译器来说,它只看语法,它要确定你有返回值,这是从安全的角度考虑的.
来看你的代码:
for(int x=0; x<min.length(); x++)
{
for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++)
{
String temp = min.substring(y,z);
sop(temp);
if(max.contains(temp))//if(s1.indexOf(temp)!=-1)
return temp;
}
}
return "";
}
for循环中的return temp 是写在if后的,编译器不能确定这个return是否一定会被执行,所以你需要给它一个确定的返回值.而我们自己知道已经返回了一个temp,所以需要return一个"";来通过编译. |