我想在控制台中写一个字符。
这是我的代码。
using System;
namespace bla
{
class MainClass
{
public static void Main (string[] args)
{
int d = 5;
char e = (char)d;
Console.WriteLine("my Char: " + e);
Console.WriteLine("my Char: " + e.ToString ()); // also doesn't work
}
}
}
相反,我只看到“我的字符:”作为输出,而不是预期的“我的字符:5”。
答案 0 :(得分:5)
您希望char e = '5';
打印" 5"到控制台。
当你有
时int d = 5;
char e = (char)d;
你正在打印一个带有值 5的字符,这是你问题的评论中指出的Enquiry character,而不是字符&#34 ; 5"
角色" 5"有ASCII value 53(十六进制为0x35
- ASCII 0x30
为" 0",0x39
为" 9"以及其他数字为0x3{d}
,其中{d}
为数字);你可以修改你的代码来打印" 5"这样也是这样的:
char e = 0x35;
注意你不需要在这里施放。但如果您希望从int
投射到char
,您可以使用
int d = 0x35;
char e = (char)d;
您可以通过执行类似
的操作来自行检查char e = 0x35;
char f = '5';
bool check = e == f; // true
如果您希望打印的字符有所不同,您可以改为执行
之类的操作private void printNumberToConsole(int number)
{
if ( number < 0 || number > 9 )
throw new ArgumentException("'number' must be between 0 and 9");
char e = '0' + (char)number; // '0' == 0x30
Console.WriteLine("my Char: " + e);
}
答案 1 :(得分:4)
将5转换为char会从此ASCII table中获得第5个值。
它在控制台中没有显示任何内容,因为它不是可打印的字符。
如果您注意到表格中的数字从48(即数字0)开始到57(即数字9)。
所以你必须这样做。
int d = 5;
char e = (char)(d + 48);
Console.WriteLine("my Char: " + e);
Console.WriteLine("my Char: " + (char)(5 + '0')); // or
答案 2 :(得分:0)
您无需将5
转换为char
,以下代码可以使用:
int d = 5;
Console.WriteLine("my Char: " + d.ToString ());