- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第
C#字符串与数值类型、字节数组的互相转换实战案例
目录TryParseConvert实战总结
TryParse
正常来说,想把类似1024或者3.14之类的字符串转为对应数据类型的数值,只需要int.Parse或double.Parse就可以了。如果输入的是一列数组,也没有问题,只需分割一下就可以,例如
stringtest=5,2,0;
inti=0;
foreach(varitemintest.Split(,))
bs[i++]=int.Parse(item);
而且转换16进制也毫无压力,只需
int.Parse(AB,System.Globalization.NumberStyles.HexNumber);
在C#中,Parse是一种非常统一的函数,诸如int,uint,double等等数据类型,均提供了parse函数,用于将字符串转化为相应的数据类型。
但parse并不安全,若输入参数不符合要求,则会报错,导致程序崩溃,比如把abc转成整数,这个显然是不可能的。所以C#提供了一种不报错的转换方案,即TryParse,其使用方法如下
intintOut;
while(true)
stringstr=Console.ReadLine();
if(int.TryParse(str,outintOut))
Console.WriteLine($您输入了数字{str});
else
Console.WriteLine(输入不合法);
}
效果为
1234
您输入了数字1234
asdf
输入不合法
Convert
在实际应用中,十六进制字符串转字节数组,是十分常见的需求,如果用byte.Parse相对来说比较麻烦,这个时候就需要用到更高级的转换函数Convert了,其调用非常简单,先来演示一下单个值的转换
intintOut=Convert.ToByte(AB,16);
16表示16进制,Convert系列函数,支持2,8,10以及16这几种进制。
Convert中还支持从其他类型转为字符串,仍以十六进制转换为例,下面的代码输出结果为19。
stringstr=Convert.ToString(25,16);
Console.WriteLine(str);
但上面这些单个数值与字符串之间的相互转换,其实并不能看出Convert这个静态类的强大,Convert提供的最方便的功能,其实是字节数组与字符串之间的相互转换,例如
varbs=Convert.FromHexString(6400);
foreach(variteminbs)
Console.WriteLine(item);
其返回结果为
1000
其中0x64即10进制中的100,0x00就是0。
实战
在日常使用中,十六进制字节数组往往被写为0xAA,0xBB这种形式,通过String.Format函数,可以将字节数组输出为这种格式的字符串
stringstr=;
byte[]bs=newbyte[]{1,15,100,127};
foreach(varbinbs)
str+=$0x{b:X},;//$字符串和Format函数语法十分相似
Console.WriteLine(str);
输出结果为
0x01,0x0F,0x64,0x7F,
若想将其恢复为字节数组,则有两种方案,一种是将其分割为字符串数组后,逐个调用byte.Parse,但更好的方法是直接把0x还有,去掉,然后调用FromHexString
str=str.Replace(0x,).Replace(,,);
bs=Convert.FromHexString(str);
foreach(varbinbs)
Console.WriteLine(b);
效果如下
1
15
100
127
总结
您可能关注的文档
最近下载
- --水库除险加固工程下闸蓄水验收建设管理工作报告汇.doc
- 艺考合作计划书.pptx VIP
- 2023被动式超低能耗建严寒和寒冷地区居住建筑.docx VIP
- GB/T 2484-2023固结磨具 形状类型、标记和标志.pdf
- TBT1632.3-2019 钢轨焊接 第3部分:铝热焊接.pdf VIP
- 一元一次不等式 课件.pptx VIP
- 2家政服务 合同管理规范DB44!T 2290—2021.pdf VIP
- GB51057-2015 种植塑料大棚工程技术规范.pdf VIP
- Unit 8 Collecting as a hobby 词汇 课件 沪教牛津版英语七年级上册 .pptx VIP
- 牛津版三年级上册英语全册新优质教学课件(配2024年秋改版教材).pptx
文档评论(0)