您的位置:首页 > 编程语言 > Java开发

Java 获取两个字符串的最大子串

2014-11-18 20:09 155 查看
public class getMaxSubstring {

	/**
	 *获取两个字符串的相同的最大子串
	 */
	public static void main(String[] args) {
		
		String s2="nbasfhdnbajdnbaaanb";
		String s1="asdinbajdaab";
		String s;
		s=getMaxSubString(s1,s2);
		System.out.println(s);
		
		}

	public static String getMaxSubString(String s1, String s2) {
		
		String max=(s1.length()>s2.length())?s1:s2;
		String min=(max.equals(s1))?s2:s1;//保持s1是大字符串,s2是小字符串
		if(max.contains(min)){//如果s2本身就是两者的最大子串,则返回s2本身
			return min;
		}
		for(int i=0;i<min.length();i++){//进行s2.length()次循环匹配查找,
			for(int a=0,b=min.length()-i;b!=min.length()+1;a++,b++){//每次查找,都是从小字符串的起始位置查找,
				//a,b代表的是每次查找时的从小字符串中截取的子串的起始位置和末尾位置+1,每次查找将小字符串s2进行取子串,然后再将该子串与s1匹配,看看是s1否包含该子串。
				
				String sub=min.substring(a, b);
						if(max.contains(sub)){
					return sub;
				}
			}
			
		}
		return null;
	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: