2013-07-18 74 views
19

我想創建一個應用程序,用戶可以在其中輸入一個數字,程序會向用戶返回一個字符。如何將數字轉換爲ASCII字符?

編輯:反之亦然,如何將ascii字符更改爲數字?

+0

後有答案,使之成爲新的問題(在這種情況下,逆)請不要修改的問題。打開一個新問題。 –

回答

38

您可以使用以下方法之一來數轉換爲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問號(「?」)。

+0

很好的例子,這應該是答案! – Damian

+0

從https://msdn.microsoft.com/en-us/library/9hxt0028(v=vs.80).aspx我需要字符與Dec值150和十六進制96 ...我已經嘗試了所有3以上但不返回我正確的字符..:/ – Samra

3

你可以簡單地施放它。

char c = (char)100; 
+2

這不工作char c =(char)48。 c == 0 not 48 – nykwil

5

編輯:根據要求,我添加了一個檢查,以確保輸入的數值是127 0 ASCII範圍內,無論你是想限制,這是你來決定。在C#中(我相信.NET通常),使用UTF-16來表示char,所以任何有效的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); 
    } 
} 
+0

這有效,但您需要爲整數輸入設置一些最小/最大範圍。並非所有數字都轉換爲可顯示的ASCII字符。 – MadHenchbot

+0

如何將ascii字符轉換爲數字? –

+0

@CyraxNguyen:你可以簡單地施展另一種方式。 'int i =(int)'a';'這會將'a'字母的ascii值放在'i'中。 – Cemafor

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); 
} 
0

我googling如何將一個int轉換爲字符,這讓我在這裏。但我的問題是將例如6的int轉換爲'6'的char。 對於那些誰來到這裏像我一樣,這是如何做到這一點:

int num = 6; 
num.ToString().ToCharArray()[0]; 
+0

或者只是用'num +'0'' –