Java教程

java:寻找两个字符串的最长公共子串

本文主要是介绍java:寻找两个字符串的最长公共子串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java:寻找两个字符串的最长公共子串

// 找一个字符串的所有子串
    public static List<String> findAllStr(String s) {
        List<String> list = new ArrayList<>();
        for (int i = 0; i < s.length(); i++) {
            for (int j = i + 1; j <= s.length(); j++) {
                list.add(s.substring(i, j));
            }
        }
        return list;
    }

    // 找两个字符串的公共最长子字符串,寻找最短公共子字符串,修改比较器即可
    public static String findComStr(String sOne, String sTwo) {
        List<String> ls = findAllStr(sOne);
        Collections.sort(ls, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.length() - o1.length();
            }
        });
        for (String i : ls) {
            if (sTwo.contains(i)) {
                return i;
            }
        }
        return "";
    }

  

这篇关于java:寻找两个字符串的最长公共子串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!