23

我想创建一个应用程序,用户可以在其中输入一个数字,程序会向用户返回一个字符。

编辑:反之亦然,将 ascii 字符更改为数字?

4

6 回答 6

51

您可以使用以下方法之一将数字转换为ASCII / Unicode / UTF-16字符:

您可以使用这些方法将指定的 32 位有符号整数的值转换为其 Unicode 字符:

char c = (char)65;
char c = Convert.ToChar(65); 

此外,ASCII.GetString将字节数组中的一系列字节解码为字符串:

string s = Encoding.ASCII.GetString(new byte[]{ 65 });

请记住,ASCIIEncoding不提供错误检测。任何大于十六进制 0x7F 的字节都被解码为 Unicode 问号(“?”)。

于 2013-07-18T17:57:31.740 回答
5

编辑:根据要求,我添加了一项检查以确保输入的值在 0 到 127 的 ASCII 范围内。是否要限制这取决于您。在 C# 中(我相信一般是 .NET),chars 使用 UTF-16 表示,因此任何有效的 UTF-16 字符值都可以转换为它。但是,系统可能不知道每个 Unicode 字符应该是什么样子,因此它可能会显示不正确。

// Read a line of input
string input = Console.ReadLine();

int value;
// Try to parse the input into an Int32
if (Int32.TryParse(input, out value)) {
    // Parse was successful
    if (value >= 0 and value < 128) {
        //value entered was within the valid ASCII range
        //cast value to a char and print it
        char c = (char)value;
        Console.WriteLine(c);
    }
}
于 2013-07-18T18:02:24.143 回答
5

要将 ascii 转换为数字,只需将 char 值转换为整数。

char ascii = 'a'
int value = (int)ascii

变量值现在将有 97 对应于该 ascii 字符的值

(使用此链接作为参考) http://www.asciitable.com/index/asciifull.gif

于 2013-07-19T14:38:11.233 回答
2

你可以简单地施放它。

char c = (char)100;
于 2013-07-18T17:58:02.637 回答
2

我在谷歌上搜索如何将 int 转换为 char,这让我来到了这里。但我的问题是将例如 int of 6 转换为 char of '6'。对于像我一样来到这里的人,这是如何做到的:

int num = 6;
num.ToString().ToCharArray()[0];
于 2017-07-13T05:20:01.763 回答
1

C# 以 UTF-16 编码而不是 ASCII 表示字符。因此将整数转换为字符对 AZ 和 az 没有任何区别。但是除了字母和数字之外,我还在使用 ASCII 代码,因为系统使用的是 UTF-16 代码,所以这对我不起作用。因此,我浏览了所有 UTF-16 字符的 UTF-16 代码。这是模块:

void utfchars()
{
 int i, a, b, x;
 ConsoleKeyInfo z;
  do
  {
   a = 0; b = 0; Console.Clear();
    for (i = 1; i <= 10000; i++)
    {
     if (b == 20)
     {
      b = 0;
      a = a + 1;
     }
    Console.SetCursorPosition((a * 15) + 1, b + 1);
    Console.Write("{0} == {1}", i, (char)i);
   b = b+1;
   if (i % 100 == 0)
  {
 Console.Write("\n\t\t\tPress any key to continue {0}", b);
 a = 0; b = 0;
 Console.ReadKey(true); Console.Clear();
 }
}
Console.Write("\n\n\n\n\n\n\n\t\t\tPress any key to Repeat and E to exit");
z = Console.ReadKey();
if (z.KeyChar == 'e' || z.KeyChar == 'E') Environment.Exit(0);
} while (1 == 1);
}
于 2016-01-16T09:39:31.560 回答