我试图通过指定的索引在字符串中获取一个单词,一个单词只能由字母和数字组成。
我已经尝试了指定的代码,但不幸的是它产生了以下异常:“长度不能小于零。参数名称:长度”。我猜这发生在第 18 行。请帮忙。
代码的目标是通过指定的索引获取单词。
private string WordByIndex(string text, int index)
{
try
{
int start = index;
int end = index;
while (char.IsLetterOrDigit(text[start]))
{
start--;
}
start++;
while (char.IsLetterOrDigit(text[end]))
{
end++;
}
return text.Substring(start, end - start);
}
catch (Exception ex) { throw ex; }
}
您只需要将 start 和 end 保持在字符串的边界内:
private string WordByIndex(string text, int index)
{
int start = index;
int end = index;
while (start >= 1 && char.IsLetterOrDigit(text[start - 1]))
{
start--;
}
while (end < text.Length && char.IsLetterOrDigit(text[end]))
{
end++;
}
return text.Substring(start, end - start);
}
(我删除了你的 try-catch-block 因为它什么都不做 atm)
您的方法的好处是不创建多余的字符串副本或使用正则表达式
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句