Java中单字节Ascii的byte字节数组与String转换
2016-05-12 14:54
337 查看
这个东西讲起来很蹩脚.Java应用程序一般来讲在上层界面中都是使用String来描述字符串.String其实是一个双字节的数组.在java中,char是2个字节的字符,也就是说String是char的数组.但其内部的关系一般人也没有必要去研究.两个字节的字符对于经常做底层开发的人是比较讨厌的事情.底层开发一般都使用单字节的ascii码字符.在数据传输时将单字节的字符按照byte的方式进行传输.
这样一来,上层的String要变成下层的byte数组就比较麻烦了.下面是我的实现方法,难到不难,只是写程序时纠结于这种小事上的确不划算,不如copy过去直接使用爽快一些:
1. byte[]转换成 String:
本例中将
String nRcvString;
StringBuffer tStringBuf=new StringBuffer ();
byte[]tBytes=new byte[]{0x31,0x32,0x33}; //实际上是ascii码字符串"123"
char[]tChars=new char[tRecvCount];
for(inti=0;i<tRecvCount;i++)
tChars[i]=(char)tBytes[i];
tStringBuf.append(tChars);
nRcvString=tStringBuf.toString(); //nRcvString从tBytes转成了String类型的"123"
2.将String 转成 单字节的byte[]
nSndString实际上是双字节的字符串,经过转换,变成了单字节的字节数组.
String nSndString="123456";
byte[] tBytes=nSndString.getBytes("US-ASCII");
这样一来,上层的String要变成下层的byte数组就比较麻烦了.下面是我的实现方法,难到不难,只是写程序时纠结于这种小事上的确不划算,不如copy过去直接使用爽快一些:
1. byte[]转换成 String:
本例中将
String nRcvString;
StringBuffer tStringBuf=new StringBuffer ();
byte[]tBytes=new byte[]{0x31,0x32,0x33}; //实际上是ascii码字符串"123"
char[]tChars=new char[tRecvCount];
for(inti=0;i<tRecvCount;i++)
tChars[i]=(char)tBytes[i];
tStringBuf.append(tChars);
nRcvString=tStringBuf.toString(); //nRcvString从tBytes转成了String类型的"123"
2.将String 转成 单字节的byte[]
nSndString实际上是双字节的字符串,经过转换,变成了单字节的字节数组.
String nSndString="123456";
byte[] tBytes=nSndString.getBytes("US-ASCII");
相关文章推荐
- java进阶书籍推荐(不包括基础)
- javaoop--io操作
- Java实现归并排序
- java中的Serializable接口的作用
- 关于SpringMvc中使用aop的问题
- Java的8大排序算法
- springMVC搭建总结
- java数组
- Java-同步回调-简单科普
- myeclipse连接hadoop集群编程及问题解决
- java 工程师 基础知识总结
- MAC下Eclipse的常用快捷键
- Spring拦截器中通过request获取到该请求对应Controller中的method对象
- 指定某个jdk版本方法
- Java线程池的几种实现 及 常见问题讲解
- 10个关于Java异常的常见问题
- spring mvc实现图片上传预览
- Ubuntu16.04 64位系统下面安装JDK1.7
- Ubuntu16.04 64位系统下面安装JDK1.7
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)