//如果返回多个相同字符串
public String[] getMaxSameSomeString(String str1,String str2){
//首先判断两个字符串都不为null
StringBuffer stringBuffer =new StringBuffer();
if (str1!=null&&str2!=null){
//再判断两个字符串中长串,与短串
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 substring = minstr.substring(x, y);
//如果大字符串中包含查找到的字符串,就返回
if (maxstr.contains(substring)){
stringBuffer.append(substring + ",");
}
}
//结束一轮后,如果stringBuiffer的长度不为0,意味着已经找到相同字符串,便不再往下循环,结束
if (stringBuffer.length()!=0){
break;
}
}
}
String[] split = stringBuffer.toString().replaceAll(",$", "").split(",");
return split;
}
获取两个字符串中最大的相同字符串(升级版,可以实现查找到两个以上的最大相同字符串)
最新推荐文章于 2022-07-30 13:10:34 发布