作者don750421 (1+1≠2)
看板C_Sharp
標題[問題] 如何用遞迴取得最後N個字元
時間Wed Jul 23 21:50:12 2014
假設有個字串長這樣 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
→ Abbee:如果別人告訴你的話, 那你永遠也無法學會用遞迴了 07/23 23:56
→ Abbee:這東西要自己學會想哦 07/23 23:56
→ don750421:有想過了,但是我使用LastIndexOf使用遞迴,總是抓到跟 07/23 23:58
→ don750421:由左往右抓到的值一樣= = 07/23 23:58
→ don750421:應該是說,我使用Index取第二個的答案,跟我使用 07/24 00:01
→ don750421:LastIndexOf由右往左取第二個的結果是一樣@@ 07/24 00:01
→ ck574b027:你沒看清楚 LastIndexOf 用的參數,去檢查一下吧 07/24 08:58
→ ck574b027:跟遞迴無關,你要知道 IndexOf 參數的意義。 07/24 09:03
→ don750421:今天騎車時仔細想了一下,已解決,謝謝各位 07/24 20:30
※ 編輯: don750421 (36.239.96.105), 07/24/2014 20:31:33