关于返回值的问题 求大牛给个解释。。。。
//获取两个字符串中最大相同的子串
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
偶是这样理解地 坐等大神 详细解释
[解决办法]
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 "";就是必要的了!
[解决办法]