作者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/m.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