作者aoksc (重出江湖)
看板C_Sharp
标题[问题] 处理重复字串的问题请教
时间Sun Dec 27 22:57:59 2015
请教各位
我在写一个转换县市合并升格改地名的程式
例如桃园县桃园市=>桃园市桃园区
市的部份我是先取前三个字判断在Dictionary有无Key
有的话就用Replace对应Value换掉
区则是Dictionary的Key扫一遍判断有哪个相符合
有符合的一样Replace成在Dictionary的Value
(有执行上面才会执行这边,带表示有升格的县市)
但像是桃园县桃园市
第一次转换成桃园市桃园市
执行下一个方法时Replace会变成桃园区桃园区
请问有什麽更好的方法可以不让他Replace第一个桃园市
只Replace第二个出现的桃园市呢?
我目前只想到如果前三个字是桃园市
就另外写个判断处理
取前三个字加上後面剩下的部份Replace
在将两个部份结合起来
不晓得是否有更聪明的方法
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.44.11.210
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1451228283.A.BB6.html
1F:推 J002: 比对IndexOf 跟LastIndexOf的值是否相等? 12/27 23:09
这样是可以判断有没有两个上的相同字
可是要Replace的话呢?
※ 编辑: aoksc (114.44.11.210), 12/27/2015 23:43:29
2F:推 MickPlaYer: 转过的东西push出去如何? 12/28 00:51
3F:→ MickPlaYer: pop才对 大太快 : p 12/28 00:53
4F:→ Litfal: 把桃园县删掉,塞到一个代表桃园县的集合内,全部找完再串 12/28 04:56
5F:→ Litfal: 或是解析成像这样的结构: 12/28 04:59
6F:→ Litfal: addrObj={"cityCode":1, "areaCode":3, addr="中正路1段"} 12/28 05:00
7F:→ Litfal: string addrStr = addrObj.ToAddressString(); 12/28 05:01
8F:→ Litfal: 函数里面当然就利用那两个code把地址串回来啦 12/28 05:02
9F:→ johnny007: 把流程改成这样的话呢 找桃园县->找桃园市->市改为区-> 12/28 16:33
10F:→ johnny007: 县改为市 12/28 16:33
11F:推 J002: 想说substring完再replace,但这样似乎是Mick大的方法会更好 12/28 17:35
12F:推 evirtues: 把两次的Dictionary Value加起来再加上 12/29 03:09
13F:→ evirtues: SubString(两个Dictionary Value的总长度) 12/29 03:10