Android 16进制byte数组和16进制String,String之间转换
来源:互联网 发布:淘宝推广收费标准 编辑:程序博客网 时间:2024/06/05 20:42
下面是从网上找的代码但是其中《16进制字符串转字节数组》有BUG无法转换0~15,下面有方法
/*16进制byte数组转String*/public static String bytes2HexString(byte[] b) { String r = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[i] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; } r += hex.toUpperCase(); } return r; }/* * 16进制字符串转字节数组 */ public static byte[] hexString2Bytes(String hex) { if ((hex == null) || (hex.equals(""))){ return null; } else if (hex.length()%2 != 0){ return null; } else{ hex = hex.toUpperCase(); int len = hex.length()/2; byte[] b = new byte[len]; char[] hc = hex.toCharArray(); for (int i=0; i<len; i++){ int p=2*i; b[i] = (byte) (charToByte(hc[p]) << 4 | charToByte(hc[p+1])); } return b; } }/* * 字符转换为字节 */private static byte charToByte(char c) { return (byte) "0123456789ABCDEF".indexOf(c);}
方法如下
/*String转byte数组*/public static byte[] Stringtobytes(String s) { byte[] present = {}; if (Integer.parseInt(s) >= 16) { present = hexString2Bytes(Integer.toHexString(Integer.parseInt(s))); }else if(Integer.parseInt(s) == 0){ present = new byte[]{0x00}; }else if(Integer.parseInt(s) == 1){ present = new byte[]{0x01}; }else if(Integer.parseInt(s) == 2){ present = new byte[]{0x02}; }else if(Integer.parseInt(s) == 3){ present = new byte[]{0x03}; }else if(Integer.parseInt(s) == 4){ present = new byte[]{0x04}; }else if(Integer.parseInt(s) == 5){ present = new byte[]{0x05}; }else if(Integer.parseInt(s) == 6){ present = new byte[]{0x06}; }else if(Integer.parseInt(s) == 7){ present = new byte[]{0x07}; }else if(Integer.parseInt(s) == 8){ present = new byte[]{0x08}; }else if(Integer.parseInt(s) == 9){ present = new byte[]{0x09}; }else if(Integer.parseInt(s) == 10){ present = new byte[]{0x0a}; }else if(Integer.parseInt(s) == 11){ present = new byte[]{0x0b}; }else if(Integer.parseInt(s) == 12){ present = new byte[]{0x0c}; }else if(Integer.parseInt(s) == 13){ present = new byte[]{0x0d}; }else if(Integer.parseInt(s) == 14){ present = new byte[]{0x0e}; }else if(Integer.parseInt(s) == 15){ present = new byte[]{0x0f}; } return present;}
阅读全文
0 0
- Android 16进制byte数组和16进制String,String之间转换
- java String和byte[]转换(包括16进制String和byte[]转换)
- byte数组和String转换
- byte数组和String之间的相互转换代码
- Java byte[]数组和十六进制String之间的转换Util
- String 与Byte[]数组之间的转换
- base64 byte[] 16进制 string 各种转换
- byte[]和String类型之间的转换
- String和byte[]之间的相互转换
- C# string和byte[]之间转换
- string和byte[]之间的转换 (C#)
- [JAVA] string 和 byte之间的转换
- 关于string和byte之间的转换
- byte数组和String之间的转化
- 【积累】 int 10进制 byte 16进制,BCD码 String之间的转换
- c# string和byte数组相互转换
- string 和int 转换成byte数组
- String, InputStream, byte之间转换
- yii框架学习经历-2.6使用 Gii 生成代码
- NOIP 2017 Senior 6
- 特征点的提取与匹配
- cordova maven太慢,阿里地址
- Unity Mesh合并
- Android 16进制byte数组和16进制String,String之间转换
- uber的配置
- SUSE 11 SP3下搭建PXC(Percona XtraDB Cluster)
- 20 个 CSS 高级技巧汇总
- 如何为Kafka集群选择合适的Topics/Partitions数量
- 如何设置jquery的ajax方法为同步
- android自定义view--Paint和Canvas
- 单点登录(三)-----实战-----cas server 源码下载和部署
- Qt利用线程进行数据更新