关于返回值的问题 求大牛给个解释。。。。
//获取两个字符串中最大相同的子串
class StringText4
{
public static void print(String str)
{
System.out.println(str);
}
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);
if(s1.contains(temp))
return temp;
}
}
return "";
}
public static void main(String[] args)
{
String s1="skdfjkhelloworldjdfkjfkkfdj";
String s2="kdjhelloworlddfd";
print(getMaxSubString(s1,s2));
}
}
return""这个是什么意思呢 ??我知道必须要返回一个字符串,但是for里面的不是已经返回了吗?
外面的接收不到吗?返回这块始终搞不清楚怎么回事,哪位大牛给讲一下嘛,,或者给我复制一份别的网站的资料也好
,上面的""的内容是不是替换了temp的值啊??
------解决方案--------------------那个应该是在for语句出错的时候 返回的吧 如果for没错 那就直接在for里返回了比如 s.length()=0
偶是这样理解地 坐等大神 详细解释
------解决方案--------------------Java code
public static String getMaxSubString(String s1, String s2) {
for (int x = 0; x < s2.length(); x++) {//如果s2.length==0,就没有返回值了。
for (int y = 0, z = s2.length() - x; z < s2.length() + 1; y++, z++) {//同理
String temp = s2.substring(y, z);
if (s1.contains(temp))//如果if没找到,也没有返回值了。
return temp;
//else return "";//加上了,还有两面两种情况。
}
}
return "";//所以这里要加return;
}
------解决方案--------------------
这样就使程序更好点!当两层循环都没执行时, return "";就是必要的了!
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
不是有个if语句吗。如果if语句没有执行呢?就没有返回值。
所以加一句返回空串是为了防止抛异常