java:尋找兩個字串的最長公共子串
阿新 • • 發佈:2022-04-05
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 ""; }