作者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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1406123416.A.1F8.html
1F:→ Abbee:如果别人告诉你的话, 那你永远也无法学会用递回了 07/23 23:56
2F:→ Abbee:这东西要自己学会想哦 07/23 23:56
3F:→ don750421:有想过了,但是我使用LastIndexOf使用递回,总是抓到跟 07/23 23:58
4F:→ don750421:由左往右抓到的值一样= = 07/23 23:58
5F:→ don750421:应该是说,我使用Index取第二个的答案,跟我使用 07/24 00:01
6F:→ don750421:LastIndexOf由右往左取第二个的结果是一样@@ 07/24 00:01
7F:→ ck574b027:你没看清楚 LastIndexOf 用的参数,去检查一下吧 07/24 08:58
8F:→ ck574b027:跟递回无关,你要知道 IndexOf 参数的意义。 07/24 09:03
9F:→ don750421:今天骑车时仔细想了一下,已解决,谢谢各位 07/24 20:30
※ 编辑: don750421 (36.239.96.105), 07/24/2014 20:31:33