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)抛出的异常的情况下,无论是strclearStr3短。我建议增加验证:如果你传递一个字符串作为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);

}

回答:

检查strclearStr长度。 Substring将抛出此错误,如果字符串长度小于您选择/删除。

回答:

您的代码将抛出此异常。我建议在开始时为此添加一个检查,并定义这些类型值的期望结果。

以上是 System.ArgumentOutOfRangeException错误 的全部内容, 来源链接: utcz.com/qa/259523.html

回到顶部