2009-10-15 13 views
10

Istnieje milion postów na temat konwersji postaci do wartości ASCII.
Cóż, chcę kompletnego przeciwieństwa.
Mam wartość ASCII przechowywane jako int i chcę wyświetlić jego znaków ASCII w ciągu znaków.Jak przekonwertować wartość ASCII na znak w .NET

tj. Proszę wyświetlić kod do konwersji int 65 na A.

Co mam obecnie jest String::Format("You typed '{0}'", (char)65)

ale skutkuje to "You typed '65'" natomiast chcę go mieć "You typed 'A'"

Używam C++/CLI, ale myślę, że każdy język .NET zrobi ...

(wydanej po humously poprawić pytanie dla przyszłych pracowników Google)

+4

Er, "pośmiertny" oznacza po śmierci. Chcę trochę technologii, która pozwoliła ci na pośmiertną edycję! – jason

+1

@Jason Jednym z najważniejszych warunków pośmiertnego edytowania jest to, że musisz być martwy. Jednak nie polecam wypróbowania tego! : D (oczywiście miałem na myśli odpowiedź, ale to nie jest słowo) – demoncodemonkey

Odpowiedz

8

w C++:

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

Mamy zwycięzcę! Dzięki :) – demoncodemonkey

7

dla wartości ASCII, należy po prostu być w stanie rzucić na char? (C# :)

char a = (char)65; 

lub jako wyrażenie:

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

Nie pokazuje NUL, SOH dla znaków numerycznych od 0 do 9. Rozumiem? –

+1

@ManishDubey będzie działać poprawnie; są tylko nie drukowalnymi kodami kontrolnymi. –

1

tylko formować go; nie może być prostsze.

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

Istnieje kilka sposobów, oto niektóre:

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

Do dwóch ostatnich należy dołączyć '[0]'. To znaczy, na przykład, 'char c = new string (65, 1) [0];'. – jason

+1

@Jason: Tak, możesz to zrobić naprawdę chcesz jako char. Jeśli ma zamiar połączyć to z innymi ciągami, nie ma sensu tworzyć łańcucha znaków, aby utworzyć znak, który ma zostać przekształcony w łańcuch, zanim będzie można go połączyć. – Guffa

2

Kompleks wersja, oczywiście, jest:

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

oczywiście, że to zanim przeczytałem odpowiedź za pomocą metoda Encoding.GetString. D'oh.

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

Istnieje wiele sposobów, aby to OD. Jeśli chcesz, aby wpisywały kolejne cyfry w separatorach i spacje, możesz użyć czegoś takiego:

string userInput = "123456"; 
    var digits = str.Select(c => Convert.ToInt32(c.ToString())); 
Powiązane problemy