我看到這個question,要求給一個字符串「史密斯;羅傑斯;麥卡倫」你怎麼能產生一個集合。答案是使用String.Split。有什麼替代拆分字符串在C#中,不使用String.Split()
如果我們沒有內置Split(),你會做什麼?
更新:
我承認寫一個分割功能是相當容易的。以下是我會寫的。使用IndexOf遍歷字符串並使用Substring提取。
string s = "smith;rodgers;McCalne";
string seperator = ";";
int currentPosition = 0;
int lastPosition = 0;
List<string> values = new List<string>();
do
{
currentPosition = s.IndexOf(seperator, currentPosition + 1);
if (currentPosition == -1)
currentPosition = s.Length;
values.Add(s.Substring(lastPosition, currentPosition - lastPosition));
lastPosition = currentPosition+1;
} while (currentPosition < s.Length);
我把在SSCLI實施偷看其類似於上面除了它處理方法更多使用案例,它使用一種不安全的方法去子提取之前確定分離器的索引。
其他人建議如下。
- 擴展,使用迭代器塊
- 正則表達式的建議方法(未實施)
- LINQ的聚合方法
是這個嗎?
我不明白的問題;是不是答案「寫一個拆分方法」?這並不是一個困難的寫作方法。 – 2010-08-27 22:50:14
讓我們沒有IndexOf()。獎金根本不使用System.String。 – 2010-08-28 00:41:21