2012-02-16 187 views
0

如何將逗號分隔的字符串拆分爲較小的以逗號分隔的字符串?將逗號分隔的字符串拆分爲較小的字符串

我的字符串如下所示:1,2,3,4,5,6,7,8,9,10

我需要,字符的每第n發生後的字符串分割。
例如對於每3出現,上面的字符串就會變成這些字符串:
1,2,3,45,6,7,89,10

可能看起來像功課,但它不是,我的大腦只是累了,但我仍然需要完成工作。

回答

2

嘗試中,你算逗號;-)

未經檢驗的一個循環,它可能看起來像:

int lastSplit = 0; 
int commaCount = 0; 
int n = 4; 
List<string> parts = new List<string>(); 

for (int i = 0; i < s.Length; i++) 
{ 
    if (s[i] == ',' && ++commaCount == n) 
    { 
     commaCount = 0; 
     parts.Add(s.Substring(lastSplit, i - lastSplit)); 
     lastSplit = i + 1; 
    } 
} 

parts.Add(s.Substring(lastSplit)); 
+0

很好,謝謝。 – Niklas 2012-02-17 09:15:34

0

你可以通過正則表達式做到這一點。嘗試使用((?:[^,]+)(?:,(?:(?:[^,]*))){0,3})rubular

哦,然後你只需要換掉正則表達式中的「3」就可以得到任何數量的逗號。

0

那麼,

[TestMethod] 
    public void test() 
    { 

      string text = "1,2,3,4,5,6,7,8,9,10"; 
      var lists = Regex.Matches(text, ".,.,.,."); 

      foreach (var x in lists) 
      { 
      Console.WriteLine(x.ToString()); 
      } 

    }