package stringTest;
public class StringDemo4 {
public static void main(String[] args) {
String str1 = "Ilikejavaverymuch";
String str2 = "java is useful";
StringDemo4 sd4 = new StringDemo4();
sd4.sop(sd4.getMaxSubString1(str1, str2));
}
/**
* 求两个字符串的最大相同子串,思路:
* 1、将短的字符串,按照长度递减的方式获取子串(核心)
* 2、将每个获取的子串,判断是否在长的字符串中存在
* */
String getMaxSubString1(String str1, String str2) {
String maxStr ="", minStr = "";
maxStr = str1.length() > str2.length() ? str1:str2;
minStr = (maxStr == str1) ? str2:str1;
for(int i = 0; i < minStr.length(); i++){
for(int start = 0, end = minStr.length()-i; end <= minStr.length(); start++, end++){
if (maxStr.contains(minStr.substring(start, end))){
return minStr.substring(start, end);
}
}
}
return "";
}
//打印字符串
void sop(String str){
System.out.println("str = " + str + "");
}
}
打印结果:
str = java
原文:http://blog.csdn.net/u011402596/article/details/41749033