java语言编程,求两个字符串的最大子串

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。