取出两个字符串中最大相同的子串

//*************************************************************************
//题目要求:4、取出两个字符串中最大相同的子串。
//*************************************************************************

public class SearchMaxSameString {

    public static void main(String[] args) {
        String str1 = null;
        String str2 = null;
        String maxStr = null;
        // 输入两个字符串
        Scanner input = new Scanner(System.in);
        System.out.print("请输入字符串str1:");
        str1 = input.nextLine();
        System.out.print("请输入字符串str2:");
        str2 = input.nextLine();
        // 将输入的两个字符串安长短区分开
        String shortStr = str1.length() > str2.length() ? str2 : str1;
        String longStr = shortStr.equals(str1) ? str2 : str1;
        // 调用maxSerach获得最大字符串
        maxStr = maxString(shortStr, longStr);
        // 输出字符串
        System.out.println("最大相同子串是:" + maxStr);
        input.close();

    }

    // 定义静态方法maxSerach来获得最大字符串
    public static String maxString(String shortStr, String longStr) {
        // 定义一个空字符串来存储最大字符串
        String maxStr = "";
        // 以两个字符串中短字符串为准,来求得最大相同字符串
        for (int i = 0; i < shortStr.length(); i++) {
            // 从前往后,依次截取子字符串存放在临时字符串temp1中
            String temp1 = shortStr.substring(i);
            for (int j = temp1.length() - 1; j >= 0; j--) {
                // 在获得的临时子字符串temp1上再从后往前截取,以获得所有子字符串存放到temp2
                String temp2 = temp1.substring(0, j);
                // 如果存在子字符串,并且该子字符串的长度最大则付给maxStr
                if (longStr.indexOf(temp2) != -1
                        && temp2.length() > maxStr.length()) {
                    maxStr = temp2;
                }
            }
        }
        // 返回maxStr
        return maxStr;
    }

}
// *************************************************************************
// 测试结果:
// 请输入字符串str1:ffdsajoifwwqn3342nkjnf23n42fsd
// 请输入字符串str2:fdafioenrjoifwwqn3342nkjnf23n4023jfs,adfj
// 最大相同子串是:joifwwqn3342nkjnf23n4
// *************************************************************************

求最大相同字符串的代码忘了参考那位仁兄的了,对不住喽!

posted on 2015-01-24 20:41  红可可  阅读(604)  评论(0编辑  收藏  举报

导航