获取两个字符串中最大相同子串。
比如:str1 = "abcwerthelloyuiodef“;str2 = “cvhellobnm”
代码实现
public static List<String> getMaxSubString(String str1,String str2){
String maxStr = (str1.length() > str2.length())? str1 : str2;
String minStr = (str1.length() < str2.length())? str1 : str2;
int len = minStr.length();
List<String> list = new ArrayList<>();
for(int i = 0;i < len;i++){ //将短的那个串进行长度依次递减的子串与较长的串比较
for(int x = 0,y = len - i;y <= len;x++,y++){ //短的那个串进行长度依次递减时,要考虑从头递减和从尾递减的情况,或者既从头又从尾,各种组合的情况。y表示逐个递减的个数
String str = minStr.substring(x, y);
if(maxStr.contains(str)){
list.add(str);
}
}
if(list.size() != 0){
return list;
}
}
return null;
}
@Test
public void test3(){
String s1 = "abcwerthelloyuiodef";
String s2 = "cvhellobnm";
System.out.println(getMaxSubString(s1,s2));
}