如何拆分已经拆分的字符串

时间:2015-10-16 04:55:14

标签: c# string-split

我的代码如下。

foreach (var item in betSlipwithoutStake)
{
    test1 = item.Text;
    splitText = test1.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);

    if (!test.Exists(str => str == splitText[0]))
        test.Add(splitText[0]);           
}

我得到像"Under 56.5 Points (+56.5)"这样的价值观。

现在我想再次分配'('之后列表中每个项目的所有内容,这样我就会得到一个新列表并可以使用它。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果要在括号内提取值:

foreach (var item in betSlipwithoutStake)
    {
        test1 = item.Text;
        splitText = test1.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);

        if (!test.Exists(str => str == splitText[0]))
            if(splitText[0].Contains("("))
                test.Add(splitText[0].Split('(', ')')[1]);           
            else
                test.Add(splitText[0]);
    }

答案 1 :(得分:0)

好吧,假设您正在使用没有正则表达式的解决方案,并且声明了List<string>测试,那么您可以使用索引(以及一些错误处理)跟进子字符串:

foreach (var item in betSlipwithoutStake)
    {
        test1 = item.Text;
        splitText = test1.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
        if (splitText.Length == 0)
            continue;

        string stringToCheck = splitText[0];
        int openParenIndex = stringToCheck.IndexOf('(');
        int closeParenIndex = stringToCheck.LastIndexOf(')');

        if (openParenIndex >=0 && closeParenIndex >= 0)
        {
            // get what's inside the outermost set of parens
            int length = closeParenIndex - openParenIndex + 1;
            stringToCheck = stringToCheck.Substring(openParenIndex, length);
        }

        if (!test.Exists(str => str == splitText[0]))
            test.Add(splitText[0]);           
    }

您可以找到与字符串here一起使用的所有方法。