我试图接受用户的输入并将其转换为整数数组。问题是当我选择4个数字时,例如2463字符串的输出正确,但是int数组的输出不正确,似乎是所选数字+ 48。
我不太确定为什么会这样。感谢您提供的任何帮助。
string userChoiceAsString;
int[] userChoice = new int[4];
userChoiceAsString = (Console.ReadLine());
for (int i = 0; i < userChoiceAsString.Length; i++)
{
userChoice[i] = userChoiceAsString[i];
Console.WriteLine(userChoice[i]);
Console.WriteLine(userChoiceAsString[i]);
}
最佳答案
这是合理的,因为当用户输入字符2时,它对应于小数点50。这与ASCII表相关联。
请看看here。
为了避免这种情况,您应该尝试解析每个字符,如下所示:
userChoice[i] = Int32.Parse(userChoiceAsString[i].ToString());
或者您可以使用Char的方法
GetNumericValue
返回一个浮点数,然后将其转换为int。userChoice[i] = (int)Char.GetNumericValue(userChoiceAsString[i]);