public String getMaxSameString(String str1,String str2){
//"abcdfaegfaddgassg" 和 "aegfad"
//将两个子串分为按照长短区分开来
String maxString = (str1.length() >= str2.length()) ? str1 : str2;
String minString = (str1.length() < str2.length()) ? str1 : str2;
int length = minString.length();
//如果两个子串有一个为null,则就返回null
if (str1 != null && str2 != null){
//将短的字符串长度每次-1,使用contains()判断是否属于长串
//如果属于,则返回
for (int i = 0;i < length;i++){
//将end <= length,在substring时的end取不到
for (int start = 0,end = length - i;end <= length;start++,end++){
String substring = minString.substring(start, end);
if (maxString.contains(substring)){
return substring;
}
}
}
}
return null;
}
测试上面代码:
@Test
public void test1(){
String str1 = "askjdfjlajsdjfhello123";
String str2 = "adfgeshello123";
String maxSameString = getMaxSameString(str1, str2);
System.out.println(maxSameString);
}