【问题标题】:How to convert an ASCII value into a character in .NET如何将 ASCII 值转换为 .NET 中的字符
【发布时间】:2010-12-07 04:08:13
【问题描述】:

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

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

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

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

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

(经过幽默编辑,为未来的谷歌人改进问题)

【问题讨论】:

  • 呃,“死后”是死后的意思。我想要一些能让你实现死后编辑的技术!
  • @Jason 死后编辑最重要的先决条件之一是你必须死。但是,我不建议您尝试对此进行测试! :D(当然我的意思是事后回答,但这不是一个词)

标签: .net integer ascii


【解决方案1】:

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

char a = (char)65;

或作为字符串:

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

【讨论】:

  • 0 到 9 的数字字符不显示 NUL、SOH。明白了吗?
  • @ManishDubey 它会正常工作;它们只是不可打印的控制代码
【解决方案2】:

在 C++ 中:

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

【讨论】:

  • 我们有一个赢家!谢谢:)
【解决方案3】:

只要施放它;再简单不过了。

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

【讨论】:

    【解决方案4】:

    有几种方法,这里有一些:

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

    【讨论】:

    • 最后两个应附加[0]。也就是说,例如,char c = new string(65, 1)[0];
    • @Jason:是的,你可以这样做,你真的想要它作为一个字符。如果他要将它与其他字符串连接起来,那么创建一个字符串来创建一个在连接之前将再次变成一个字符串的 char 是没有意义的。
    【解决方案5】:

    当然,复杂的版本是:

    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 方法阅读答案之前。哦。

    public string DecodeAsciiByte(byte b) {
        return System.Text.Encoding.ASCII.GetString(new byte[] { b });
    }
    

    【讨论】:

      【解决方案6】:
       Dim str as string    
       str = Convert.ToChar(65).ToString()
       msgbox(str)
      

      【讨论】:

        【解决方案7】:

        有很多方法可以解决这个问题。如果您希望他们键入带分隔符和空格的连续数字,那么您可以使用以下内容:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-30
          • 2011-02-19
          • 1970-01-01
          • 2021-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多