如何将ASCII值转换为.NET中的字符

时间:2009-10-15 19:43:12

标签: .net integer ascii

这里有一百万个关于如何将字符转换为ASCII值的帖子 好吧,我想完全相反 我有一个ASCII值存储为int,我想在字符串中显示其ASCII字符表示。

即。请显示将int 65转换为A的代码。

我目前所拥有的是String::Format("You typed '{0}'", (char)65)

但这导致"You typed '65'",而我希望它为"You typed 'A'"

我正在使用C ++ / CLI,但我猜任何.NET语言都可以......

(为了改善未来googlers的问题,后哼哼地编辑)

7 个答案:

答案 0 :(得分:19)

有几种方法,一些是:

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

答案 1 :(得分:8)

在C ++中:

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

答案 2 :(得分:7)

对于ASCII值,您应该只能转换为char? (C#:)

char a = (char)65;

或作为字符串:

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

答案 3 :(得分:3)

 Dim str as string    
 str = Convert.ToChar(65).ToString()
 msgbox(str)

答案 4 :(得分: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 });
}

答案 5 :(得分:1)

施展它;不可能更简单。

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

答案 6 :(得分:1)

有很多方法可以解决这个问题。如果你想让他们输入连续数字w / op分隔符和空格,那么你可以使用类似的东西:

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