我试图接受用户的输入并将其转换为整数数组。问题是当我选择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]);

07-27 23:38