[問題] [已解決]如何用遞迴取得最後N個字元

看板C_Sharp (C#)作者 (1+1≠2)時間11年前 (2014/07/23 21:50), 11年前編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
假設有個字串長這樣 0912-345-678           0123456789AB <--第幾個字元A代表10,B代表11 string SearchPatten = "0912-345-678"; string SearchStr = "-"; 如果使用遞迴由左往右取 可以 ///SearchPatten 要找的母體樣本 ///SearcgStr 要找的字串 ///nTH 要找第幾個 private static int IndexOf(string SearchPatten,string SearchStr,int nTH) { if(nTH < 0)    return -1; else if(nTH == 1) return SearchPatten.IndexOf(SearchStr); return SearchPatten.IndexOf(SearchPatten,                 IndexOf(SearchPatten,SearchStr,nTH-1)+1); } 如果 我要找從左邊數第一個 "-",nTH 傳入 1 Output:4 ========================================================================== 如果我要使用LastIndexOf由後往前取第二個"-",照理說應該答案也是 4 我知道使用for迴圈或do...while也可以取得答案, 但我還是想請問一下要如何使用LastIndexOf+遞迴取得答案呢?? 謝謝各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.3.127 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1406123416.A.1F8.html

07/23 23:56, , 1F
如果別人告訴你的話, 那你永遠也無法學會用遞迴了
07/23 23:56, 1F

07/23 23:56, , 2F
這東西要自己學會想哦
07/23 23:56, 2F

07/23 23:58, , 3F
有想過了,但是我使用LastIndexOf使用遞迴,總是抓到跟
07/23 23:58, 3F

07/23 23:58, , 4F
由左往右抓到的值一樣= =
07/23 23:58, 4F

07/24 00:01, , 5F
應該是說,我使用Index取第二個的答案,跟我使用
07/24 00:01, 5F

07/24 00:01, , 6F
LastIndexOf由右往左取第二個的結果是一樣@@
07/24 00:01, 6F

07/24 08:58, , 7F
你沒看清楚 LastIndexOf 用的參數,去檢查一下吧
07/24 08:58, 7F

07/24 09:03, , 8F
跟遞迴無關,你要知道 IndexOf 參數的意義。
07/24 09:03, 8F

07/24 20:30, , 9F
今天騎車時仔細想了一下,已解決,謝謝各位
07/24 20:30, 9F
※ 編輯: don750421 (36.239.96.105), 07/24/2014 20:31:33
文章代碼(AID): #1JpxsO7u (C_Sharp)
文章代碼(AID): #1JpxsO7u (C_Sharp)