【发布时间】:2019-09-28 14:28:29
【问题描述】:
我正在做一些 C# 练习,任务是检查 att swedish SSN 是发给女性还是男性。
算法检查第九个数字是否可以被 0 整除,那么它是女人还是男人。
如果我在字符串变量中使用硬编码的“nr”,则算法有效,但如果我尝试从 readline 语句中读取它,则会收到以下错误:
索引超出范围。必须是非负数且小于集合的大小。参数名称:startIndex
这是我正在使用的代码:
//string personnr = "860215-2097";
string personnr = "";
char[] arr;
public void CheckGender(string pnr)
{
arr = personnr.ToCharArray(9, 1);
if (personnr[9] %2 == 0)
{
Console.WriteLine($"Woman!!!");
}
else
{
Console.WriteLine($"Man!!!");
}
}
public void PrintPersonNr()
{
Console.WriteLine("Write a personnr in the format yymmdd-nnnn: ");
string nr = Console.ReadLine();
CheckGender(nr);
}
所以我猜我的 PrintPersonNr 方法不能正常工作..
谢谢
【问题讨论】:
-
你没有检查,
pnr足够长。除此之外,您的代码只能靠运气工作,因为您不是在检查第 9 位是否可以被 2 消除,而是检查字符代码是否可以被 2 消除。