C# 数据互转 16进制&16进制字符串&字符串

这篇具有很好参考价值的文章主要介绍了C# 数据互转 16进制&16进制字符串&字符串。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、字符串过滤 or 提取字符串

提取字符串:在C# .net开发中 “ToString()”方法是最常见的,用于将文本转为字符串;

字符串过滤:在处理字符串数据或者hex数据时,一般都需要去掉 空格 数组标识0x 标点符号 等等字符,方便后续进一步处理;

//将文本转为字符串
{
    ...
    string str = textBox1.Text.ToString();
    ...
}


//过滤字符串
{
    string pattern = "[A-Za-z0-9]";
    string strRet = "";

    //正则匹配,只保留字母和数字
    MatchCollection results = Regex.Matches(ReadString(), pattern);
    foreach (var v in results)
    {
        strRet += v.ToString();
    }

    return strRet.Replace("0x", "");
}

2、字符串与16进制数组互转

从字符串转16进制数组,字符串的每一个字符就是一个byte;

可以用Encoding类的方法完成格式转换,Encoding位于System.Text命名空间下;

//str为输入字符串
byte[] bytes = Encoding.Default.GetBytes(str);

同样的,字节数组转字符串;

//bytes为输入字节数组
string str = Encoding.Default.GetString(bytes);

3、16进制数组与16进制字符串互转

16进制数组无法直接打印和显示(否则会出现乱码),这就需要转成对应的字符串;


//利用for循环将16进制数组转成对应的16进制字符串
//如 0x7E,0x5D,0x5A => "7E5D5A"

string strTemp = "";

for (int i = 0; i < bytes.Length; i++)
{
	strTemp += bytes[i].ToString("X2");
	strTemp += " ";
}


一般对于嵌入式硬件底层,收到的数据都是字节流,不需要转换,可以直接处理;

但是对于PC、Android等非底层驱动,拿到的数据都是字符串形式,这就需要将16进制字符串转16进制数组;


//str为过滤之后的字符串,只包含字母和数字

string strTemp = "";

for (int i = 0; i < str.Length/2; i++)
{
	strTemp += str.Substring(2 * i, 2);
	strTemp += " ";
}

4、字符串与16进制字符串

二者互转又多了一层。

字符串转16进制字符串:先将字符串转为16进制数组,再将16进制数组转为16进制字符串;

16进制字符串转字符串:先将16进制字符串转为16进制数组,再将16进制数组转为字符串;

5、其它常见转换操作

5.1 字符串替换

小节1中介绍了正则匹配来过滤字符串的方法,string类本身也有很多方法实现过滤和替换文章来源地址https://www.toymoban.com/news/detail-404912.html

//去掉字符串中的控制字符
string str2 = str1.Replace(" ", "").Replace(",", "").Replace("\t", "").Replace("\n", "").Replace("\r", "");

5.2 格式转换

//Encoding为编码格式转换
//Convert为数据格式转换

//常见的转换有

Convert.ToByte();
Convert.ToUInt16();
Convert.ToUInt32();
Convert.ToUInt64();
Convert.ToDateTime();
Convert.ToString();
Convert.ToBase64String();

到了这里,关于C# 数据互转 16进制&16进制字符串&字符串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包