一种字符串合并与拆分的方法

有个REST接口,能提供中文繁体到中文简体的转换服务,为了提高转换效率,需要将多个字符串合并为一个字符串,进行转换后再进行拆分,请提供一种字符串合并与拆分的解决方案。

通过审题,实现方案的核心在于分割字符串的设计方案,简单的方法有:
1. 提供业务中不可能出现的字符,比如日文字符;
2. 充分利用JSON.stringify与JSON.parse特性,实现字符串的编码与解码;

除此以外,还可以设计一种自定义的解决方案,首先替换目标字符串的分割字符,必须保证目标字符串的尾部不会出现分割字符,以“,,”为分割符,实现方案如下:
1. 首先将目标字符串中的逗号替换为“,\”,这样可以保证字符串尾部即使出现“,”,也不会拼接在分割字符串中,导致分割失败;其次,即使字符串中出现连续的“,”,也不会出现字符分割失败的清醒;
2. 以“,,”为分割符合并字符串;
3. 以“,,”为分割符切分字符串;
4. 遍历数组,将“,\”替换为“,”;

代码实现如下:

var array = ['1,', '2\\', '3\\,', '4', ',5'],
    str;
for(var i =0, len=array.length; i < len; i++) {
    //  替换“,”,避免内容的干扰
    array[i] = array[i].replace(/\,/g, '\,\\')
}
//  合并字符串
str = array.join(",,");
//  拆分字符串
var splitArr = str.split(',,');
for(i = 0, len = splitArr.length; i < len; i++) {
    splitArr[i] = splitArr[i].replace(/\,\\/g, '\,')
}
//  测试结果与源字符串保持一致
console.log(splitArr)

结论

字符串合并与拆分的关键在与分割字符串的设计,其核心在于避免内容字符串与分割字符串的干扰。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值