获取两个字符串中最大相同字符串。比如str1=”abchellofgh”,str2=”acdhellob”。
此时两个字符串只有一个最大相同字符串

public String getMaxCommonStr(String str1,String str2){String maxStr = (str1.length() >= str2.length()) ? str1 : str2;String minStr = (str1.length() < str2.length()) ? str1 : str2;int length = minStr.length();for(int i=0;i<length;i++){for(int x=0,y=length-i;y<=length;x++,y++){String substring = minStr.substring(x, y);boolean contains = maxStr.contains(substring);if(contains){return substring;}}}return null;}
如果有多个最大相同字符串,可以使用集合来存储
public List<String> getMaxCommonStr(String str1, String str2){String maxStr = (str1.length() >= str2.length()) ? str1 : str2;String minStr = (str1.length() < str2.length()) ? str1 : str2;List<String> strings = new ArrayList<String>();int length = minStr.length();for(int i=0;i<length;i++){for(int x=0,y=length-i;y<=length;x++,y++){String substring = minStr.substring(x, y);boolean contains = maxStr.contains(substring);if(contains){strings.add(substring);}}//内部for循环结束后,如果集合长度不为0,则证明找到了最大的相同字符串,程序不需要继续进行了。if(strings.size()!=0){return strings;}}return null;}
