字符串拆分为字符串数组没有分隔符

时间:2017-02-02 08:26:09

标签: c#

代码:

string animals = "cat98dog75";

我尝试实现的目标:

  

字符串a =" cat98&#34 ;;

     

string b =" dog75&#34 ;;

问题:

如何使用某个范围分隔符拆分字符串?

示例:

animals.split();

3 个答案:

答案 0 :(得分: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

如果您想通过相同大小的块拆分初始字符串:

  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];

答案 1 :(得分:0)

这可能会为你做到这一点

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

答案 2 :(得分: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);
        }
    }

您将获得输出

cat - 98

狗 - 75

基本上,你得到了类型和数字,所以如果你想使用计数,你就不需要再分开......