获取两个字符串中最大的相同字串(简易的实现步骤:)
package ChangyongLeideshiyong;
import org.junit.Test;
public class StringDemo3 {
/*
* 获取两个字符串中最大的相同字串,比如:
* str1 ="abcwerthelloyuiodef"; str2 = "cvhellobnm";
* 提示:将短的那个串进行长度依次递减的字串与较长的串比较。
* */
public String getMaxSameString(String str1,String str2){
//比较两个字符串的长度,分别获取长的字符串和短的字符串
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 x=0,y =length-i;y<=length;x++,y++){
String subStr =minStr.substring(x,y); //截取短的字符串中相应的字符串
if (maxStr.contains(subStr)){
return subStr;
}
}
}
return null;
}
@Test
public void testGetMaxSameString(){
//创建两个字符串,比较两个字符串中最大的相同字串
String str1 ="abcwerthelloyuiodef";
String str2 ="cvhellobnm";
String maxSameString = getMaxSameString(str1, str2);
System.out.println(maxSameString);
}
}
下面是运行的结果: