package 数组;
/*
*本程序寻找两个字符串中最大的公共字串,并且考虑到了长度一样长最大字串。
*
* 想法:将一个字串按照从大到小的顺序拆开,第一匹配到的一定是最长字串,待该长度字串循环完毕后,停止循环。
*/
public class getMaxCommanString
{
public static void main(String a[])
{
find("hello aasdxzc world", "hello,world"); // 控制台会输出 hello world
}
private static void find(String str, String key)
{
String temp = null;
int y, z;
boolean flag = false;
for (int i = 0; i < str.length(); i++) { // 确定偏移位置。
for (y = 0, z = (str.length() - i); z != str.length() + 1; y++, z++) {
//假如原来是10个字符,循环到i=5时,则先取01234,然后12345直到56789
//内层循环能够按照“第一循环的偏移位置”所确定的长度循环出字串。
temp = str.substring(y, z);
if (key.contains(temp)) {
System.out.println(temp);
flag = true;
}
}
if (flag) {
//这个是在完成一次内层循环时候的判定,flag为真说明该长度的已经匹配完了,而且有,那么下面更短的不需要匹配了。
break;
}
}
}
}