将字符串转换为字节数组
本文关键字:字节数 数组 字节 字符串 转换 | 更新日期: 2023-09-27 18:04:00
可能重复:
在C#中,如何将字节数组转换为十六进制字符串,反之亦然?
以完全相同的方式将字符串的内容转换为字节数组是否可行?
例如:我有一个字符串,类似于:
string strBytes="0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89";
如果我把strBytes传给它,有什么函数可以给我以下结果吗?
Byte[] convertedbytes ={0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89};
没有内置的方法,但您可以使用LINQ来做到这一点:
byte[] convertedBytes = strBytes.Split(new[] { ", " }, StringSplitOptions.None)
.Select(str => Convert.ToByte(str, 16))
.ToArray();
string strBytes="0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89";
string[] toByteList = strBytes.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntires);
byte[] converted = new byte[toByteList.Length];
for (int index = 0; index < toByteList.Length; index++)
{
converted[index] = Convert.ToByte(toByteList[index], 16);//16 means from base 16
}
string strBytes = "0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89";
IEnumerable<byte> bytes = strBytes.Split(new [] {','}).Select(x => Convert.ToByte(x.Trim(), 16));