C# 十六进制字符串转字符串
char有8位,所以两位十六进制的数字可以表示一个char。
把十六进制字符串去空格,转换成char[] 。连续两个char[] 合并成一个string。通过Parse()方法把string转换成十进制Byte[]。Byte[] 最后转换成想要的字符串。
String.Split() 方法通过基于一个或多个分隔符拆分输入字符串来创建子字符串数组。
此方法通常是分隔字边界上的字符串的最简单方法。
它也用于拆分其他特定字符或字符串上的字符串。
ToCharArray() 方法用来将字符串转换成字符数组。
Parse() 方法的用法详见👇
如何在十六进制字符串与数值类型之间转换(C# 编程指南)
namespace DataTypeApplication
{
class Program
{
static void Main(string[] args)
{
string str = "61 62 63 64";
string str1 = hexStrToStr(str);
Console.WriteLine(str1);
}
private static string hexStrToStr(string str)
{
//去除字符串中的空格
string[] strT = str.Split(' ');
string strA = "";
foreach(string strB in strT)
{
strA += strB;
}
char[] chars = strA.ToCharArray();
string returnstr = "";
string[] str1 = new string[chars.Length / 2];
for (int i = 0; i < chars.Length / 2; i++)
{
string str111 = chars[2 * i].ToString() + chars[2 * i + 1].ToString();
uint num = uint.Parse(str111, System.Globalization.NumberStyles.AllowHexSpecifier);
char charr = (char)num;
returnstr = returnstr + charr;
}
return returnstr;
}
}
}
结果👇
这种方法适用于TCP/UDP通信时,接收十六进制信息后的内容显示。