这是获取两个字符串中最大相同子串的练习代码。
class StringTest3
{
public static void main(String[] args)
{
String s1="abcwerthelloyuiodef";
String s2="cvhellobnm";
String s3=maxSubString(s1,s2);
System.out.println("s3=="+s3);
//System.out.println("Hello World!");
}
public static String maxSubString(String s1,String s2)
{
String max="",min="";
max=(s1.length()>s2.length())?s1:s2;
min=(max==s1)?s2:s1;
for (int x=0;x<s2.length() ;x++ )
{
for (int start=0,end=min.length()-x; end<min.length()+1;start++,end++ )
{
String temp=min.substring(start,end);
System.out.println(temp);
if(max.contains(temp))
return temp;
}
}
//return ""; 问题在这,为什么这句一注释,就报缺少返回语句的错误呢??上面不是已经return temp 了吗?求指教
//粗心了哈, return temp是双重for循环的返回结果,如果不执行第一个for语句,即s>=s2.length(),那么就不执行后面的for语句,所以这里必须要有return ""
}
}
|