我想创建一个用户输入数字的应用程序,程序会将一个字符扔回给用户。
编辑:反之亦然,将ascii字符更改为数字?
答案 0 :(得分:43)
您可以使用以下方法之一将数字转换为 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问号(“?”)。
答案 1 :(得分:5)
编辑:根据请求,我添加了一项检查,以确保输入的值在0到127的ASCII范围内。是否要限制这取决于您。在C#中(我相信.NET一般),char
用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);
}
}
答案 2 :(得分:4)
要将ascii转换为数字,只需将char值转换为整数即可。
char ascii = 'a'
int value = (int)ascii
变量值现在将具有97,其对应于该ascii字符的值
(使用此链接作为参考) http://www.asciitable.com/index/asciifull.gif
答案 3 :(得分:3)
你可以简单地施展它。
char c = (char)100;
答案 4 :(得分:1)
C#代表UTF-16编码的字符而不是ASCII。因此,将整数转换为字符对A-Z和a-z没有任何影响。但我正在使用除了字母和数字之外的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);
}
答案 5 :(得分:0)
我在谷歌搜索如何将int转换为char,这让我来到这里。但我的问题是将例如6的int转换为'6'的char。 对于像我这样来到这里的人来说,这是怎么做的:
int num = 6;
num.ToString().ToCharArray()[0];