在每个字符上分隔字符串并将其放入数组中

时间:2014-11-25 19:22:46

标签: c# mysql .net

我从MySQL数据库中提取一个字符串,其中包含来自朋友的所有ID,格式为:

  

5 + 6 + 12 + 33 + 1 + 9 +

现在,每当我必须添加一个简单的朋友时,我只需要取出字符串并添加任何ID和#34; +"。我的问题在于将所有ID分开并将其放入数组中。我目前正在使用这种方法

string InputString = "5+6+12+33+1+9+";

 string CurrentID = string.Empty;
 List<string> AllIDs = new List<string>();
 for (int i = 0; i < InputString.Length; i++)
 {
       if (InputString.Substring(i,1) != "+")
       {
           CurrentID += InputString.Substring(i, 1);
       }
       else
       {
          AllIDs.Add(CurrentID);
          CurrentID = string.Empty;
       }
 }
 string[] SeparatedIDs = AllIDs.ToArray();

即使这确实有效,但对于我想要做的事情来说,它似乎过于复杂。 是否有更简单的方法来分割字符串或清洁?

4 个答案:

答案 0 :(得分:3)

试试这个: -

var result = InputString.Split(new char[] { '+' });

您可以使用Split的其他重载 如果你想删除空格,也是如此。

答案 1 :(得分:0)

string[] IDs = InputString.Split('+');会使用InputString字符将+拆分为字符串数组

答案 2 :(得分:0)

您应该将Split方法与StringSplitOptions.RemoveEmptyEntries一起使用。 RemoveEmptyEntries可以帮助您避免将空字符串作为最后一个数组元素。

示例:

char[] delimeters = new[] { '+' };
string InputString = "5+6+12+33+1+9+";
string[] SeparatedIDs = InputString.Split(delimeters, 
    StringSplitOptions.RemoveEmptyEntries);
foreach (string SeparatedID in SeparatedIDs)
    Console.WriteLine(SeparatedID);

答案 3 :(得分:0)

var result = InputString.Split('+', StringSplitOptions.RemoveEmptyEntries);

需要额外的选项,因为有一个尾随+