Java 数据类型转换——byte[]/16进制/字符串互转
2017-05-23 15:06
531 查看
Java 数据类型转换——byte[]/16进制/字符串互转
简介
最近在做TCP通信,报文是以16进制数组的形式进行接收和发送的,其中在解析和组装报文的过程中就用到了各种数据类型的转换,在这里主要是总结一下Java中byte数组、16进制(byte以及字符串类型)、字符串之间的相互转换,加深一下理解。另外也希望分享一下供大家参考,如有更好方法还请不吝赐教!
Java基本数据类型
详细语法请参考:http://www.runoob.com/java/java-basic-datatypes.html基本类型 | 封装类 | 大小 |
---|---|---|
boolean(布尔型) | Boolean | 1/8字节(1位) |
byte(字节型) | Byte | 1字节(8位) |
char(字符型) | Charactor | 2字节(16位) |
shot(短整型) | Shot | 2字节(16位) |
int (整形) | Integer | 4字节(32位) |
long (长整型) | Long | 8字节(64位) |
float(单精度浮点型) | Float | 4字节(32位) |
double(双精度浮点型) | Double | 8字节(64位) |
一、byte[] 转 16进制字符串
我们可以将byte转换成int,然后利用Integer.toHexString(int)来转换成16进制字符串
public String bytesToHexString(byte[] src){ StringBuilder stringBuilder = new StringBuilder(""); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } 8f34 stringBuilder.append(hv); } return stringBuilder.toString(); }
二、16进制字符串 转 byte[]
/** * Convert hex string to byte[] * @param hexString the hex string * @return byte[] */ public static byte[] hexStringToBytes(String hexString) { if (hexString == null || hexString.equals("")) { return null; } hexString = hexString.toUpperCase(); int length = hexString.length() / 2; char[] hexChars = hexString.toCharArray(); byte[] d = new byte[length]; for (int i = 0; i < length; i++) { int pos = i * 2; d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1])); } return d; } /** * Convert char to byte * @param c char * @return byte */ private byte charToByte(char c) { return (byte) "0123456789ABCDEF".indexOf(c); }
相关文章推荐
- Java中byte与16进制字符串的互相转换
- java基础数据类型与字符串之间的转换
- Java中byte与16进制字符串的互相转换
- 各数据类型转换byte数组(方便java和c++的网络通信)
- Java byte数据类型转换
- Java 数据类型转换之字符串
- Java中byte与16进制字符串的互相转换
- Java下 16进制 与 字符串 、整形、基本数据类型的相互转换函数
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- Java中byte与16进制字符串的互相转换
- java根本数据类型转换成byte[]数组
- Java byte类型转16进制字符串及逆转
- Java中byte与16进制字符串的互相转换
- Java中byte与16进制字符串的互相转换
- [bxd学习java基本点]1.基本数据类型与字符串型转换与其他类型转成字符串
- java中字符串与16进制,byte之间的转换
- [转]Java中byte与16进制字符串的互相转换
- 【JAVA学习】java基本数据类型与字符串之间的转换(基本数据类型、对象封装类、自动装箱、自动拆箱)
- C# 读取 timestamp 时间戳 值为byte[] 类型时,需要转换成 16进制的字符串 和 数据库中的时间戳值进行比对
- Java byte数据类型详解与转换