2009-10-15 92 views
10

如何將字符轉換爲其ASCII值有一百萬個帖子。
那麼我想完全相反。
我有一個ASCII值存儲爲一個int,我想顯示其字符串中的ASCII字符表示。如何將ASCII值轉換爲.NET中的字符

即,請顯示將int 65轉換爲A的代碼。

什麼我目前是String::Format("You typed '{0}'", (char)65)

但這會導致"You typed '65'",而我希望它是"You typed 'A'"

我使用C++/CLI,但我想任何.NET語言會做...

(編輯完後用以改善未來谷歌搜索引擎的問題)

+4

呃,「追授」是指死後。我想要一些可以讓你實現死後編輯的技術! – jason 2009-10-15 20:24:58

+1

@Jason死後編輯最重要的先決條件之一就是你必須死。不過,我不建議你嘗試測試一下! :D (當然,我的意思是後回答,但這不是一個字) – demoncodemonkey 2009-10-15 21:08:19

回答

8

在C++:

int main(array<System::String ^> ^args) 
{ 
    Console::WriteLine(String::Format("You typed '{0}'", Convert::ToChar(65))); 
    return 0; 
} 
+1

而且我們有贏家!謝謝:) – demoncodemonkey 2009-10-15 20:13:36

7

對於ASCII值,您應該能夠投到char? (C#:)

char a = (char)65; 

或字符串:

string a = ((char)65).ToString(); 
+1

它不顯示NUL,SOH數字字符從0到9.明白了嗎? – 2015-03-03 07:13:50

+1

@ManishDubey它會正常工作;他們只是不可打印的控制代碼 – 2015-03-03 09:12:18

1

只要投它;不能簡單一些。

// C# 
int i = 65; 
Console.WriteLine((char)i); 
18

有多種方法,這裏有一些:

char c = (char)65; 
char c = Convert.ToChar(65); 
string s = new string(65, 1); 
string s = Encoding.ASCII.GetString(new byte[]{65}); 
+1

最後兩個應該附加'[0]'。也就是說,例如,'char c = new string(65,1)[0];'。 – jason 2009-10-15 19:56:53

+1

@Jason:是的,你可以做到這一點,你真的想要它作爲一個字符。如果他將它與其他字符串連接在一起,那麼創建一個字符串來創建一個字符,在它可以被連接之前會再次變成一個字符串是沒有意義的。 – Guffa 2009-10-15 20:04:33

2

複雜的版本,當然是:

public string DecodeAsciiByte(byte b) { 
    using(var w = new System.IO.StringWriter()) { 
     var bytebuffer = new byte[] { b }; 
     var charbuffer = System.Text.ASCIIEncoding.ASCII.GetChars(bytebuffer); 
     w.Write(charbuffer); 
     return w.ToString(); 
    } 
} 

當然,這是我之前使用閱讀答案Encoding.GetString方法。 D'哦。

public string DecodeAsciiByte(byte b) { 
    return System.Text.Encoding.ASCII.GetString(new byte[] { b }); 
} 
3
Dim str as string  
str = Convert.ToChar(65).ToString() 
msgbox(str) 
1

有很多方法來OD這一點。如果你想讓他們輸入連續的數字(不帶分隔符和空格),那麼你可以使用類似的東西:

string userInput = "123456"; 
    var digits = str.Select(c => Convert.ToInt32(c.ToString())); 
相關問題