//在某论坛看到的代码 记录一下
import
java.io.*;
public
class
Main {
public
static
void
main(String[] args)
throws
IOException, InterruptedException {
String s1 =
"ABCDEFG"
;
String s2 =
"ABCDEQWE "
;
label:
for
(
int
subStrLength = s1.length(); subStrLength >
0
; subStrLength--)
for
(
int
index =
0
; index + subStrLength <= s1.length(); index++) {
//两层循环的意思把第一个字符串s1拆分
//长度为7:ABCDEFG,长度为6:BCDEFG,ABCDEF,长度为5,ABCDE,BCDEF,CDEFG...长度为1,A,B,C,D,E,F,G
//把拆分的字符串赋给变量subString
String subString = s1.substring(index, index+subStrLength);
//可以把下面代码注释掉,打印出subString的值:System.out.println(subStrLength + ":" + subString);
if
(-
1
!= s2.indexOf(subString)) {
//如果在第二个字符串中找到了拆分好的字符串subString,那么subString就是最长的公共子串,然后跳出所有的循环
System.out.println(subString);
break
label;
}
}
}
}