// 最大相同字串 public static String maxSameStr(String str1, String str2) { // 判断字符串是否为空 if (str1 != null && str2 != null) { // 获取长串和短串 String maxStr = (str1.length() >= str2.length()) ? str1 : str2; String minStr = (str1.length() < str2.length()) ? str1 : str2; // 获取短串的长度 int length = minStr.length(); // 以短串为第一次循环遍历 for (int i = 0; i < length; i++) { // 双指针从前到后和从后到前遍历,保证获得的是最长字串 for (int j = 0, k = length - i; k <= length; j++, k++) { // 截取字符串 String result = minStr.substring(j, k); // 判断长串是否包含短串 if (maxStr.contains(result)) { return result; } } } } return null; }