【发布时间】:2012-10-09 05:16:51
【问题描述】:
我必须检查所有字母是否都是递归的大写字母,我不知道为什么这不起作用:
public static bool IsCapital(string str)
{
if (str.Length == 1)
return int.Parse(str[0].ToString()) > 65 && int.Parse(str[0].ToString()) < 90;
return IsCapital(str.Substring(1)) && int.Parse(str[0].ToString()) > 65 && int.Parse(str[0].ToString()) < 90;
}
它崩溃并说:“未处理的异常:System.FormatException:输入字符串的格式不正确。”
Console.WriteLine(IsCapital("abc"));
谢谢。
【问题讨论】:
-
是否需要递归?看来
str == str.ToUpper()可能会产生您想要的结果。 -
@AustinSalonen 家庭作业并不总是有意义的。
-
我也会创建一个
IsCapital(char c)方法(假设您不能使用现有的char.IsUpper),而不是将该逻辑放入该方法中。这将有助于清理代码。 -
正如 NullUserException 所说,我也觉得很愚蠢
-
只是确保... ;-)