package String;
/* 原理:将较小的字符串看做是最大长度的子串,然后将较小的字符串和和较大的字符串比较,如果不是,将较小的字符串长度减一再比较,依次减一,比较
第1次 abcdefg 比较这 7 位是否是最大子串
第2次 bcdefg abcdef 比较这 6 位是否是最大子串
第3次 bcdef abcde bcdef 5
*/
//.获取两个字符串中最大的相同子串public class MAXString {
public static void main(String[] args) {
String a="abcdefg";
String b="123abc456";
for(int i=0;i<a.length();i++) { //控制有多少个长度的串
//组合当前次数的字符串 ,比如 第3次,5个字符, bcdef abcde bcdef 3 种组合
for(int j=0,k=a.length()-i;k!=a.length()+1;j++,k++) { //j,k分别代表subString(beginIndex,endIndex),k=a.length-i是因为第一次,k=a.length,第二次,k=a.length-1,....
//k!=a.length+1是因为:例如第3次,如果后面的索引 k=g 的后一位,那就不能组成5个字符了。
String temp=a.substring(j, k);if(b.contains(temp)) {
System.out.println(temp);
return;
}
}
}
}
}