import java.util.ArrayList;
import java.util.List;
public class StringCommonUtil {
/**
* 取得两个字符串的最大相同子串
* @param str1
* @param str2
* @return
*/
public static String getMaxSameStr(String str1, String str2){
String temp; // 用来交换字符串,使s.length()>s2.length
String s3;// 用于存储截取后的字符串
if (str1.length() < str2.length()) {//比较s与s2长度,将较长的字符串赋给s
temp = str2;
str2 = str1;
str1 = temp;
}
int count = str2.length();//将较短字符串的长度赋值给count
int sum = (count + 1) * count / 2;//计算得出所有可能结果的最大值sum
String[] sonArray = new String[sum];//分配sum个空间给sonArray数组
int arrIndex = 0;//sonArray数组下标
if (str1.indexOf(str2) != -1) {//如果s2为s的子字符串
return str2;
} else if (str1.indexOf(str2) == -1) {
for (int i = 0; i < str2.length(); i++) {
for (int j = str2.length(); j > i; j--) {
s3 = str2.substring(i, j);//将截取后的字符串赋值给s3
if (str1.indexOf(s3) != -1) {
//如果s3为s的子字符串,则将s3置入sonArray数组中
sonArray[arrIndex] = s3;
arrIndex++;
}
}
}
if (sonArray[0] == null) {//如果sonArray数组为空
return "";
}
String compareTemp = null;
//遍历sonArray数组,将最大长度的字符串赋值给sonArray数组的第一个值
for (int compareIndex = 1; compareIndex < arrIndex; compareIndex++) {
System.out.println(sonArray[compareIndex]);
if (sonArray[0].length() < sonArray[compareIndex].length()) {
compareTemp = sonArray[0];
sonArray[0] = sonArray[compareIndex];
sonArray[compareIndex] = compareTemp;
compareIndex++;
}
}
}
return sonArray[0];
}
}