C#string.Split()不起作用

时间:2017-02-25 11:39:41

标签: c# string loops foreach split

我编写了这段代码来查看字符串中的每个参数。 字符串如下所示:“render :: rectangle(0,0,200,200,Red,2)” 这是我的代码:

if (line.StartsWith("render::rectangle(")) {
    foreach(string parameterItem in line.Split('(', ')')) {
        string parameterIt = parameterItem;
        int posX = 0;
        int posY = 0;
        int width;
        int height;
        string colour = "White";
        int borderThickness = 0;
        int paramNum = 0;
        foreach(string parameter in parameterItem.Split(',')) {
            paramNum++;
            string param = parameter;
        }
    }
 }

这会返回“render :: rectangle”,为什么Split()不能用于此字符串?请帮忙。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

foreach (string parameterItem in line.Substring(18, line.Length - 18).Split(','))

在第一个循环中,结果字符串为:

0, 0, 200, 200, Red, 2

这是您可以专门应用拆分的时间:

Split(',')

现在,如果您的字符串正在更改或动态,您可以获取startwith的长度,然后将其放在子字符串中,例如:

int startLength = @"render::rectangle(".Length;
foreach (string parameterItem in line.Substring(startLength, line.Length - startLength).Split(','))