系统.ArgumentOutOfRangeException错误
本文关键字:错误 ArgumentOutOfRangeException 系统 | 更新日期: 2023-09-27 18:15:45
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);
}
}
input -> ToCamelCase("the_stealth_warrior")
input -> ToCamelCase("The-Stealth-Warrior")
错误:系统。索引和长度必须引用字符串中的位置。参数名称:长度
我做错了什么?
如果str
或clearStr
短于3
,则在Substring(0, 3)
或Remove(0, 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
将抛出此错误。如果您传递的str
参数字符串小于3个字符,您的代码将抛出此异常。我建议在开头添加一个检查,并定义这类值的期望结果。