package stringTest; public class StringDemo4 { public static void main(String[] args) { String str1 = "Ilikejavaverymuch"; String str2 = "java is useful"; StringDemo4 sd4 = new StringDemo4(); sd4.sop(sd4.getMaxSubString1(str1, str2)); } /** * 求两个字符串的最大相同子串,思路: * 1、将短的字符串,按照长度递减的方式获取子串(核心) * 2、将每个获取的子串,判断是否在长的字符串中存在 * */ String getMaxSubString1(String str1, String str2) { String maxStr ="", minStr = ""; maxStr = str1.length() > str2.length() ? str1:str2; minStr = (maxStr == str1) ? str2:str1; for(int i = 0; i < minStr.length(); i++){ for(int start = 0, end = minStr.length()-i; end <= minStr.length(); start++, end++){ if (maxStr.contains(minStr.substring(start, end))){ return minStr.substring(start, end); } } } return ""; } //打印字符串 void sop(String str){ System.out.println("str = " + str + ""); } }
打印结果:
str = java
原文地址:http://blog.csdn.net/u011402596/article/details/41749033