You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测一个字符串的尾部是否匹配另一个字符串的开头

首先明确实现逻辑:我们需要找到两个字符串中「string1的后缀」与「string2的前缀」的最长重叠长度,拼接时跳过重叠部分即可得到无重复的结果。

实现代码(JavaScript)

function mergeOverlap(str1, str2) {
  // 取两个字符串长度的最小值作为最大可能的重叠长度
  const maxPossibleOverlap = Math.min(str1.length, str2.length);
  // 从最长重叠长度开始倒序校验,优先匹配最长重叠避免内容丢失
  for (let overlapLen = maxPossibleOverlap; overlapLen >= 0; overlapLen--) {
    if (str1.endsWith(str2.slice(0, overlapLen))) {
      return str1 + str2.slice(overlapLen);
    }
  }
  // 理论上overlapLen为0时必然匹配,此处为兜底逻辑
  return str1 + str2;
}

测试用例

测试1:基础场景

let string1 = "Some text here";
let string2 = "text here as well";
console.log(mergeOverlap(string1, string2)); 
// 输出:"Some text here as well"

测试2:带特殊字符(破折号)场景

let string1 = "Some-text here";
let string2 = "text here as well";
console.log(mergeOverlap(string1, string2)); 
// 输出:"Some-text here as well"

测试3:完全重叠场景

let string1 = "abcdef";
let string2 = "cdef";
console.log(mergeOverlap(string1, string2)); 
// 输出:"abcdef"

测试4:无重叠场景

let string1 = "123";
let string2 = "456";
console.log(mergeOverlap(string1, string2)); 
// 输出:"123456"

内容的提问来源于stack exchange,提问作者user16897088

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:39:02