两个字符串中最大的公共字串

来源:互联网 发布:北龙中网域名认证 编辑:程序博客网 时间:2024/05/16 14:02
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;    }}    }}


 

0 0