以下代码仅针对找到即返回的情况,未处理包含多个最大相同字符串的情况
public String getMatchSameString(String str1, String str2){
int str1Length = str1.length();
int str2Length = str2.length();
if(str1Length ==0 || str2Length ==0){
return null;
}
String maxStr = (str1Length >= str2Length) ? str1 : str2;
String minStr = (str1Length < str2Length) ? str1 : str2;
int minLength = minStr.length();
for(int i =0; i < minLength; i++){
for(int start =0, end = minLength - i; end <= minLength ; start++,end++){
String subStr = minStr.substring(start,end);
if(maxStr.contains(subStr)){
return subStr;
}
}
}
return null;
}
@Test
public void testGetMatchSameStr(){
String str1 ="abcwerthelloyuiodefabcdef";
String str2 ="cvhellobnmaabc";
String maxSameString = getMatchSameString(str1, str2);
System.out.println(maxSameString);
}