前言:
今天项目开发中,遇到需要将两个字符串重叠部分进行合并并返回合并结果,比如,56、67则返回567,ABC、BCD则返回ABCD,111、222则返回null;
本来想在网上找类似的实现代码,可搜索了好久也没找到合适的,于是决定自己实现,毕竟也不难。
实现过程:
/**
* @Title: getOverlapString
* @Description: 获取合并两个字符串的重叠部分并返回结果,没有重叠则返回null<p>
* 比如:56、67则返回567,56、89则返回null
* @param str1 前合并串
* @param str2 后合并串
* @return 有重叠串则返回合并结果,没有则返回null
*/
public static final String getOverlapString(String str1,String str2) {
int index = -1;//重叠的开始位置
int len = 0;//重叠串的长度
String result = "";
for (int i = 0; i < str1.length(); i++) {//用前串控制外层循环,“指针”向右移动
if(str1.charAt(i) == str2.charAt(0)){//判断右移过程“指针”位置的字符是否与后串的第一个字符匹配,需匹配才有重叠
index &