private static int getMaxSame(String first0,String second0) {
String first = first0.toLowerCase();
String second = second0.toLowerCase();
int fLen = first.length();
int sLen = second.length();
int d = (fLen <= sLen) ? fLen : sLen;
String min = null;
String max = null;
String target = null;
if (fLen <= sLen) {
min = first;
max = second;
} else {
min = second;
max = first;
}
for (int i = d; i >= 1; i--) {
for (int j = 0; j <= min.length() - i; j++) {
target = min.substring(j, j + i);
for (int k = 0; k <= max.length() - i; k++) {
if (max.substring(k,k + i).equals(target)) {
return i;
}
}
}
}
return 0;
}
下面是测试代码,一定要这样输入,两个字符串用空格隔开,然后用split方法读取待处理的两个字符串:
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
String strFirst = sca.nextLine();
String[] strArray = strFirst.split(" ");
System.out.println(getMaxSame(strArray[0], strArray[1]));
}