【问题标题】:Converting an int to a Char c#?将 int 转换为 Char c#?
【发布时间】:2015-12-18 08:55:10
【问题描述】:

我希望能够从运算符 M/F 中读取男性或女性的值,并为每个相应的条目返回单独的文本块。

Char gender;
int TempValue;
Console.WriteLine("Please enter your name");
Console.CursorVisible=true;
String name = Console.ReadLine();
Console.WriteLine(" Greetings, faire travler {0} you are about to depart on a rather exciting adventure, but first are you male or female?", name);
Console.WriteLine("(M/F)");

TempValue = Console.Read();
Console.WriteLine("{0}", TempValue);
gender = Char.Parse(TempValue);

现在我收到一条错误消息,提示我“无法从 'INT' 转换为 'string',我真的不明白。因为我试图将其解析为 char 而不是字符串。

【问题讨论】:

  • 不应该是性别 = Char.Parse(TempValue); ?或者你可以简单地做性别 = (char)TempValue;
  • 同样的错误
  • 您正在阅读 (TempValue = Console.Read();) 并指定 (M/F) 那么这如何将 int 放入 TempValue 中?然后您尝试将其转换为字符。
  • 如果您不知道特定方法的作用,请考虑首先寻求帮助 - 即 bing.com/search?q=c%23+Console.Read - 在第一个链接中为您提供解释和示例 - msdn.microsoft.com/en-us/library/…
  • 然后试试 Console.WriteLine("(char)122 is {0}", (char)122);就像我之前说的使用性别 = (char)TempValue;

标签: c# input char


【解决方案1】:

Char.Parsestring 作为参数,但TempValue 被声明为int。你可以ToStringTempValue:

gender = Char.Parse(TempValue.ToString());

或使用Convert.ToChar(),它采用object

gender = Convert.ToChar(TempValue);

【讨论】:

  • 好的,谢谢你解决了我的问题。但格式有点笨拙。有没有更简单的方法?
  • 笨重是什么意思?你也可以投,比如gender = (char)TempValue;
【解决方案2】:

Console.Read() 返回您输入的字符的 ascii 值。 (如果是“M”,则为 77) char.Parse(TempValue) 期望 TempValuestring 并且它只包含一个字符。因此,这就是您将字符串“M”转换为字符“M”的方法。但是你没有字符串“M”;你有 int 77.
在这种情况下,您可以简单地转换它:

char gender = (char)TempValue;

或者,您可以使用Console.ReadLine(),它返回一个string,然后取第一个字符:

string input = Console.ReadLine();
char gender = input[0];

【讨论】:

    猜你喜欢
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    相关资源
    最近更新 更多