📅  最后修改于: 2023-12-03 14:59:41.482000             🧑  作者: Mango
在C#编程中,有时候我们需要将字符串转换为字节(byte)数组。这可以用于多种用途,例如在网络通信、文件读写等场景中。本文将介绍如何使用C#从字符串中获取字节,并提供示例代码。
在C#中,可以使用 Encoding 类提供的方法将字符串转换为字节数组。Encoding 类定义了多种字符编码方式,可以根据需求选择合适的编码方式进行转换。示例代码如下:
using System;
using System.Text;
class Program
{
static void Main()
{
string str = "Hello, World!";
// 将字符串转换为字节
byte[] bytes = Encoding.UTF8.GetBytes(str);
// 打印字节数组
Console.WriteLine("字节数组:");
for (int i = 0; i < bytes.Length; i++)
{
Console.Write(bytes[i] + " ");
}
Console.WriteLine();
// 将字节数组转换为字符串
string decodedStr = Encoding.UTF8.GetString(bytes);
// 打印转换后的字符串
Console.WriteLine("转换后的字符串:");
Console.WriteLine(decodedStr);
}
}
上述代码中,我们使用 UTF8 编码将字符串转换为字节数组,并使用循环打印了字节数组中的每个字节。接着,我们又使用 UTF8 编码将字节数组转换为字符串,并打印出来。请根据需要选择适合的编码方式。
如果字符串中只包含ASCII字符(0-127),我们也可以使用 Encoding.ASCII 类进行转换。ASCII 编码只使用了一个字节表示一个字符,因此转换后的字节数组大小与字符串长度相同。示例代码如下:
using System;
using System.Text;
class Program
{
static void Main()
{
string str = "Hello, World!";
// 将字符串转换为字节
byte[] bytes = Encoding.ASCII.GetBytes(str);
// 打印字节数组
Console.WriteLine("字节数组:");
for (int i = 0; i < bytes.Length; i++)
{
Console.Write(bytes[i] + " ");
}
Console.WriteLine();
// 将字节数组转换为字符串
string decodedStr = Encoding.ASCII.GetString(bytes);
// 打印转换后的字符串
Console.WriteLine("转换后的字符串:");
Console.WriteLine(decodedStr);
}
}
上述代码中,我们使用 ASCII 编码将字符串转换为字节数组,并使用循环打印了字节数组中的每个字节。接着,我们又使用 ASCII 编码将字节数组转换为字符串,并打印出来。
注意:如果字符串中包含非ASCII字符,则使用 ASCII 编码进行转换将会丢失这些非ASCII字符。
以上就是使用C#从字符串中获取字节的方法。根据实际需求,选择合适的编码方式进行转换,可以确保数据的正确传输和处理。