使用C#提取由井号分隔的字符串部分

时间:2018-01-05 19:47:26

标签: c# arrays string comma

我有以下字符串[5111110233857£254736283045£1000£25£212541£20120605152412 ££KEN NAI],[5111110233858££254736283045 2500££25£257812 2012 0605152613££KEN NAI。逗号分隔的字符串是从Web服务派生的,数字取决于返回的记录。 现在,字段用井号(£)分隔。我想提取每个字段并保存到数据库。 我已经尝试过string.split()但我不知道如何在未知数量的字符串上使用它。

2 个答案:

答案 0 :(得分:1)

您可以在此处执行的操作为Split逗号,删除每条记录中的[],然后按英镑符号Split,例如:

string test = "[5111110233857£254736283045£1000£25£212541£20120605152412 £KEN£NAI],[5111110233858£254736283045£2500£25£257812£20120605152613£KEN£NAI]";

string[] commaSeperatedStrings = test.Split(',').Select(s => s.Substring(1, s.Length - 2)).ToArray();
foreach (string commaSeperatedString in commaSeperatedStrings)
{
    string[] numbers = commaSeperatedString.Split('£');
    foreach (string number in numbers)
    {
        // You can int.Parse each number and work with them now
    }
}

答案 1 :(得分:0)

一个小程序将删除括号,在逗号上拆分,然后在井号上拆分,使用foreach循环而不是使用lambda语句(对某些人更容易理解)。

class Program
{
    static void Main(string[] args)
    {
        string s = "[5111110233857£254736283045£1000£25£212541£20120605152412 £KEN£NAI],[5111110233858£254736283045£2500£25£257812£2012 0605152613£KEN£NAI]";
        s = s.Replace("[", "").Replace("]", "");
        var split_s = s.Split(',');
        List<string> ans = new List<string>();
        foreach(var x in split_s)
        {
            var t = x.Split('£');
            foreach(var y in t)
            {
                ans.Add(y);
            }
        }
        foreach(var x in ans)
        {
            Console.WriteLine(x);
        }
        Console.WriteLine("Press any key");
        Console.ReadKey();
    }
}

使用`List',这是一个动态数组,无论原始字符串中的值是多少,您都可以随时添加元素。