C#实现ASCII和字符串相互转换的代码示例

 更新时间:2026年01月01日 11:51:43   作者:yue008  
在C#编程语言中,ASCII码是一种广泛使用的字符编码标准,它将128个不同的字符与7位的二进制数字对应起来,在处理文本时,我们有时需要将ASCII码与字符串进行相互转换,以下是如何在C#中实现这一操作的详细说明,需要的朋友可以参考下

知识点

string

Stirng.Empty
  • 表示空字符串。 此字段为只读。此字段的值为零长度字符串“”。
  • string为引用数据类型。会在内存的栈和堆上分配存储空间。因此string.Empty与“”都会在栈上保存一个地址,这个地址占4字节,指向内存堆中的某个长度为0的空间,这个空间保存的是string.Empty的实际值。
  • 区别于null,null 只在栈上分配了空间,在堆上没有分配

out

可以在两个上下文中使用 out 关键字:

  • 作为 参数修饰符,通过引用而不是值将参数传递给方法。
  • 在接口和委托的 泛型类型参数声明中 ,该声明指定类型参数是协变的。
  • 当方法需要返回多个值时,关键字 out 特别有用,因为可以使用多个 out 参数。
public void Main()
    {
        double radiusValue = 3.92781;
        //Calculate the circumference and area of a circle, returning the results to Main().
        CalculateCircumferenceAndArea(radiusValue, out double circumferenceResult, out var areaResult);
        System.Console.WriteLine($"Circumference of a circle with a radius of {radiusValue} is {circumferenceResult}.");
        System.Console.WriteLine($"Area of a circle with a radius of {radiusValue} is {areaResult}.");
        Console.ReadLine();
    }

    //The calculation worker method.
    public static void CalculateCircumferenceAndArea(double radius, out double circumference, out double area)
    {
        circumference = 2 * Math.PI * radius;
        area = Math.PI * (radius * radius);
    }

Encoding

将字符串从一种编码转换为另一种编码,
编码(Encoding):将 Unicode 字符转换为字节序列的过程。
解码(Decoding):将字节序列转换回 Unicode 字符的过程。

方法

  • GetEncoding。返回指定代码页的编码。属于编码过程
//返回与指定代码页名称关联的编码。
//Encoding.GetEncoding(String)
using System;
using System.Text;

public class SamplesEncoding  {

   public static void Main()  {

      // Get a UTF-32 encoding by codepage.
      Encoding e1 = Encoding.GetEncoding( 12000 );

      // Get a UTF-32 encoding by name.
      Encoding e2 = Encoding.GetEncoding( "utf-32" );

      // Check their equality.
      Console.WriteLine( "e1 equals e2? {0}", e1.Equals( e2 ) );
   }
}
/* 
This code produces the following output.

e1 equals e2? True

*/

编码表

常用编码格式:

  • GetBytes
    在派生类中重写时,将一组字符编码为一个字节序列。属于解码过程
//GetBytes(Char[])
//在派生类中重写时,将指定字符数组中的所有字符编码为一个字节序列。

字符串转换为数组

字符串可以理解为在字符数组。所以对手winform控件textbox的text值,也可以作为字符数组,

if(textBox1.Text!="")
{
    string chars_StrA = "hello";
    string chars_StrB=string.Empty;
    char[] txtChars01 = new char[10];
    char[] txtChars02 = new char[10];
    for (int i=0;i<textBox1.Text.Length;i++)
    {
        txtChars01[i] =textBox1.Text[i];
    }
    for(int j= 0; j< chars_StrA.Length; j++)
    {
        txtChars02[j] = chars_StrA[j];
        chars_StrB += txtChars02[j];
    }
}

代码

  private void btn_ToASCII_Click(object sender, EventArgs e)
  {
      

      if(txt_char.Text!=string.Empty)
      {
          if(Encoding.GetEncoding("unicode").GetBytes(new char[] { txt_char.Text[0] })[1]==0)
          {
              txt_ASCII.Text = Encoding.GetEncoding("unicode").GetBytes(txt_char.Text)[0].ToString();
          }
          else
          {
              txt_ASCII.Text = string.Empty;
              MessageBox.Show("请输入字母!", "提示!");
          }
      }
  }

  private void btn_ToChar_Click(object sender, EventArgs e)
  {
      if(txt_ASCII2.Text!=string.Empty)
      {
          int P_int_Num;//定义整型局部变量
          if(int.TryParse(txt_ASCII2.Text,out P_int_Num))
          {
              txt_Char2.Text = ((char)P_int_Num).ToString();
          }
          else
          {
              MessageBox.Show("请输入正确ASCII码值", "错误");
          }
      }
      
  }

到此这篇关于C#实现ASCII和字符串相互转换的代码示例的文章就介绍到这了,更多相关C# ASCII和字符串互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#/VB.NET实现在Word中插入或删除脚注

    C#/VB.NET实现在Word中插入或删除脚注

    脚注,是可以附在文章页面的最底端的,对某些东西加以说明,印在书页下端的注文。这篇文章将为您展示如何通过C#/VB.NET代码,以编程方式在Word中插入或删除脚注,需要的可以参考一下
    2023-03-03
  • C#方法的总结详解

    C#方法的总结详解

    本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下
    2013-05-05
  • AOP从静态代理到动态代理(Emit实现)详解

    AOP从静态代理到动态代理(Emit实现)详解

    AOP为Aspect Oriented Programming的缩写,意思是面向切面编程的技术。下面这篇文章主要给大家介绍了关于AOP从静态代理到动态代理(Emit实现)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • C#使用RestClient调用Web API

    C#使用RestClient调用Web API

    这篇文章介绍了C#使用RestClient调用Web API的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#实现Word和ODT文档相互转换详解

    C#实现Word和ODT文档相互转换详解

    ODT文档格式一种开放文档格式(OpenDocument Text)。本文以C#及VB.NET代码展示ODT和Word文档之间相互转换的方法,感兴趣的可以学习一下
    2022-05-05
  • C#使用RegNotifyChangeKeyValue监听注册表更改的方法小结

    C#使用RegNotifyChangeKeyValue监听注册表更改的方法小结

    RegNotifyChangeKeyValue的最后一个参数传递false,表示以同步的方式监听,这篇文章主要介绍了C#使用RegNotifyChangeKeyValue监听注册表更改的方法小结,需要的朋友可以参考下
    2024-06-06
  • C#弹出对话框确定或者取消执行相应操作的实例代码

    C#弹出对话框确定或者取消执行相应操作的实例代码

    这篇文章主要介绍了C#弹出对话框确定或者取消执行相应操作的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 十大C#中最具价值的语法糖分享

    十大C#中最具价值的语法糖分享

    C#语言是世界最优雅的语言之一,深受广大程序员的喜欢,尤其是其中的一些语法糖,下面就跟随小编一起来了解一下其中10个比较实用的语法糖吧
    2024-11-11
  • C# JWT权限验证的实现

    C# JWT权限验证的实现

    本文主要介绍了C# JWT权限验证的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 详解C#如何使用消息队列MSMQ

    详解C#如何使用消息队列MSMQ

    消息队列 (MSMQ Microsoft Message Queuing)是MS提供的服务,也就是Windows操作系统的功能,下面就跟随小编一起了解一下C#中是如何使用消息队列MSMQ的吧
    2024-01-01

最新评论