System.ArgumentOutOfRangeException错误
using System; using System.Text.RegularExpressions;
using System.Globalization;
public class Kata
{
public static string ToCamelCase(string str)
{
TextInfo myTI = new CultureInfo("en-US", false).TextInfo;
string clearStr = Regex.Replace(myTI.ToTitleCase(str), @"_|-", "");
return clearStr = str.Substring(0, 3) + clearStr.Remove(0, 3);
}
}
输入 - > ToCamelCase( “the_stealth_warrior”)System.ArgumentOutOfRangeException错误
输入 - > ToCamelCase(以下简称 “隐身战士”)
Error: System.ArgumentOutOfRangeException : Index and length must refer to a location within the string. Parameter name: length
我在做什么错?
回答:
你必须要在Substring(0, 3)
或Remove(0, 3)
抛出的异常的情况下,无论是str
或clearStr
比3
短。我建议增加验证:如果你传递一个字符串作为str
参数是少于3个字符
public static string ToCamelCase(string str) { // if str is null or too short
if (string.IsNullOrEmpty(str))
return str;
else if (str.Length < 3)
return str;
TextInfo myTI = new CultureInfo("en-US", false).TextInfo;
string clearStr = Regex.Replace(myTI.ToTitleCase(str), @"_|-", "");
// if clearStr is too short
if (clearStr.Length < 3)
return str;
return clearStr = str.Substring(0, 3) + clearStr.Remove(0, 3);
}
回答:
检查str
和clearStr
长度。 Substring
将抛出此错误,如果字符串长度小于您选择/删除。
回答:
您的代码将抛出此异常。我建议在开始时为此添加一个检查,并定义这些类型值的期望结果。
以上是 System.ArgumentOutOfRangeException错误 的全部内容, 来源链接: utcz.com/qa/259523.html