一、题目
获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodef“; str2 = "cvhellobnm", 要求只使用String相关方法解题
二、解
以下提供一种解题方法,严格解题需要判断题中两个字符串的大小,用小的选取子串str3与长度大的进行比较,还要判断两个字符串是否为空,这里只写出算法部分,该方法有局限性,只能找出第一个符合的,如果有多个符合的需要用集合或其他方法来做
public class Exer {
public static void main(String[] args) {
String str1 = "abcwerthelloyuiodef";
String str2 = "cvhellobnm";
int k = -1; //获取子字符串出现的位置
for (int flag = str2.length();flag > 1; flag-- ) //flag代表选取str3的长度
{
for (int i = 0; i < str2.length()- flag +1; i++) { //i代表选取str3的开始位置
String str3 = str2.substring(i, i+ flag);
k = str1.indexOf(str3);
if(k> 0){
System.out.println("最大相同子串为:"+str3);
return;
}
}
}
if(k == -1){
System.out.println("没有匹配到相同字符串");
}
}
}