2017-02-02 221 views
0

代碼:字符串分割到字符串數組沒有分隔符

string animals = "cat98dog75"; 

什麼,我儘量做到:

字符串= 「cat98」;

串B = 「dog75」;

問:

我怎麼分割使用一些範圍分隔字符串?

例如:

animals.split(); 
+0

什麼是你的分隔符? –

+0

您可以使用子。 –

+1

[字符串分割爲具有一定規模的大塊]的可能的複製(http://stackoverflow.com/questions/1450774/splitting-a-string-into-chunks-of-a-certain-size) – Reniuz

回答

4

我建議匹配正則表達式幫助:

using System.Text.RegularExpressions; 
    ... 

    string animals = "cat98dog75"; 

    string[] items = Regex 
    .Matches(animals, "[a-zA-Z]+[0-9]*") 
    .OfType<Match>() 
    .Select(match => match.Value) 
    .ToArray(); 

    string a = items[0]; 
    string b = items[1]; 

    Concole.Write(string.Join(", ", items)); 

結果:

cat98, dog75 

如果你想分裂初始字符串b Ÿ相等大小的塊

int size = 5; 

    string[] items = Enumerable 
    .Range(0, animals.Length/size + (animals.Length % size > 0 ? 1 : 0)) 
    .Select(index => (index + 1) * size <= animals.Length 
     ? animals.Substring(index * size, size) 
     : animals.Substring(index * size)) 
    .ToArray(); 

    string a = items[0]; 
    string b = items[1]; 
+0

這就是即時通訊由大小相等的塊找字符串。 – Edulo

+0

@Edulo:下一次,請,更具體:「拆分到字符串數組沒有分隔符」可以在許多不同的方式閱讀。 –

0

如果要拆分的動物和數量的名稱,請嘗試以下這可能會爲你

string animals = "cat98dog75"; 
string[] DiffAnimals = Regex.Split(animals, "(?<=[0-9]{2})") 
          .Where(s => s != String.Empty) //Just to Remove Empty Entries. 
          .ToArray(); 
0

做的伎倆..

我知道它太久......

private static void SplitChars() 
    { 
     string animals = "cat98dog75"; 
     Dictionary<string, string> dMyobject = new Dictionary<string, string>(); 
     string sType = "",sCount = ""; 
     bool bLastOneWasNum = false; 
     foreach (var item in animals.ToCharArray()) 
     { 

      if (char.IsLetter(item)) 
      { 
       if (bLastOneWasNum) 
       { 
        dMyobject.Add(sType, sCount); 
        sType = ""; sCount = ""; 
        bLastOneWasNum = false; 
       } 
       sType = sType + item; 
      } 
      else if (char.IsNumber(item)) 
      { 
       bLastOneWasNum = true; 
       sCount = sCount + item; 
      } 
     } 
     dMyobject.Add(sType, sCount); 
     foreach (var item in dMyobject) 
     { 
      Console.WriteLine(item.Key + "- " + item.Value); 
     } 
    } 

你會得到輸出爲

貓 - 98

狗 - 75

基本上,你得到的類型和數量,所以如果你想使用的計數,你不需要再次分裂......