试图解析C#中的链接文本

时间:2019-02-10 20:12:06

标签: c#

如何将链接解析为示例:“ a / b / c”?

如何修复返回以下代码的代码:1.'a'2.'b / c'3.空

int getSizeOfParser(string links, char c)
    {
        int size = 0;
        if (!string.IsNullOrEmpty(links))
        {
            for (int i = 0; i < links.Length; i++)
            {
                if (links[i] == c)
                    size++;
            }
            return size + 1;
        }
        return -1;
    }

    string[] parsedLink(string links, char c)
    {
        int size = getSizeOfParser(links, c);
        if (size == -1)
            return null;

        string[] parsed = new string[size];
        int i = 0, index = 0, tmp = 0;
        while (i < links.Length)
        {
            if (links[i] == c)
            {
                parsed[index++] = links.Substring(tmp, i++);
                tmp = i;
            }
            else
                i++;
        }
        return parsed;
    }

1 个答案:

答案 0 :(得分:0)

根据documentationSubString的第二个参数是从第一个参数的索引处开始的长度:

  

子字符串(Int32,Int32)   从此实例检索子字符串。子字符串从指定的字符位置开始,并具有指定的长度。

所以您要做的是:

if (links[i] == c)
        {
            parsed[index++] = links.Substring(tmp, i-tmp);
            tmp = i+1;
        }
i++;

代替:

if (links[i] == c)
        {
            parsed[index++] = links.Substring(tmp, i++);
            tmp = i;
        }
        else
            i++;