如何将链接解析为示例:“ 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;
}
答案 0 :(得分:0)
根据documentation,SubString
的第二个参数是从第一个参数的索引处开始的长度:
子字符串(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++;