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”)
输入 - > ToCamelCase(以下简称 “隐身-勇士”)
错误:System.ArgumentOutOfRangeException:索引和长度必须 引用字符串中的位置。参数名称:长度
我做错了什么?
答案 0 :(得分:0)
检查str
和clearStr
长度。如果字符串长度小于您选择/删除的字符串,Substring
将抛出此错误。
答案 1 :(得分:0)
如果Substring(0, 3)
或Remove(0, 3)
短于str
,则clearStr
或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);
}
答案 2 :(得分:0)
如果您将字符串作为str
参数传递短于3个字符,则代码将抛出此异常。我建议在开头添加一个检查,并为这些值定义所需的结果。