将字符串转换为char错误消息

时间:2013-08-23 21:59:14

标签: c#

无法将字符串转换为char错误消息。我试图能够编写一个程序,例如,允许用户输入1800HIETHC,它将返回所有数字。 我已经陷入困境......对于该做什么有任何帮助或建议吗?

    static void Main(string[] args)
    {
        char number = ' ';
        int numb = 0;

        Console.WriteLine("Please enter the telephone number...");
        number = Console.ReadLine();

        while (number <= 10)
        {

            if (number == 'A')
            {
                numb = 2;
            }
        }

        Console.WriteLine(numb);
    }
}

}

3 个答案:

答案 0 :(得分:1)

Console.ReadLine为您提供string

string除其他外,还包括char s

的集合

试试这个

string number = "";
int numb = 0;

Console.WriteLine("Please enter the telephone number...");
number = Console.ReadLine();

for(int i=0; i<number.Count; i++)
{
    if (number[i] == 'A')
    {
        //...
    }
}

答案 1 :(得分:1)

Console.ReadLine()返回字符串而不是字符。所以你不能将它分配给变量号。 将字符分配给字符串后,您可以通过myString[0]

从字符串中获取字符

答案 2 :(得分:1)

如果我理解正确的话,

string number = "1800HIETHC"; //Console.ReadLine() reads whole line, not a single char.

int[] nums = Digits(number);




static int[] Digits(string number)
{
    return number.Where(char.IsLetterOrDigit).Select(ToNum).ToArray();
}

static int ToNum(char c)
{
    int[] nums = { 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9 };

    if (char.IsDigit(c)) return c - '0';

    c = char.ToUpper(c);
    return nums[c - 'A'];
}