Java中字符串和byte数组之间的相互转换
2018-03-09 10:34
621 查看
1、将字符转换成byte数组
2、将byte数组转换成字符
3、为了方便字符的加减操作,通常以16进制字符替代普通字符与byte数组进行相互转换
/**
* 16进制的字符串表示转成字节数组
*
* @param hexString
* 16进制格式的字符串
* @return 转换后的字节数组
**/
/**
* 字节数组转成16进制表示格式的字符串
*
* @param byteArray
* 需要转换的字节数组
* @return 16进制表示格式的字符串
**/
//下面该方法等同于Integer.toBinaryString(b)
//将二进制字符串转换回字节
String str = "罗长"; byte[] sb = str.getBytes();
2、将byte数组转换成字符
byte[] b={(byte)0xB8,(byte)0xDF,(byte)0xCB,(byte)0xD9}; String str= new String (b);
3、为了方便字符的加减操作,通常以16进制字符替代普通字符与byte数组进行相互转换
/**
* 16进制的字符串表示转成字节数组
*
* @param hexString
* 16进制格式的字符串
* @return 转换后的字节数组
**/
public static byte[] toByteArray(String hexString) { hexString = hexString.toLowerCase(); final byte[] byteArray = new byte[hexString.length() / 2]; int k = 0; for (int i = 0; i < byteArray.length; i++) {// 因为是16进制,最多只会占用4位,转换成字节需要两个16进制的字符,高位在先 byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff); byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff); byteArray[i] = (byte) (high << 4 | low); k += 2; } return byteArray; }
/**
* 字节数组转成16进制表示格式的字符串
*
* @param byteArray
* 需要转换的字节数组
* @return 16进制表示格式的字符串
**/
public static String toHexString(byte[] byteArray) { String str = null; if (byteArray != null && byteArray.length > 0) { StringBuffer stringBuffer = new StringBuffer(byteArray.length); for (byte byteChar : byteArray) { stringBuffer.append(String.format("%02X", byteChar)); } str = stringBuffer.toString(); } return str; }
//下面该方法等同于Integer.toBinaryString(b)
public static String byte2bits(byte b) { int z = b; z |= 256; String str = Integer.toBinaryString(z); int len = str.length(); return str.substring(len - 8, len); }
//将二进制字符串转换回字节
public static byte bit2byte(String bString){ byte result=0; for(int i=bString.length()-1,j=0;i>=0;i--,j++){ result+=(Byte.parseByte(bString.charAt(i)+"")*Math.pow(2, j)); } return result; }
相关文章推荐
- Java中字符串与byte数组之间的相互转换
- Java中字符串与byte数组之间的相互转换
- Java基本类型与byte数组之间相互转换
- Java中字符和byte数组之间的相互转换
- Java中字符和byte数组之间的相互转换
- java中byte数组和String字符串怎么相互转换?(string 转 byte[]和byte[] 转 string)
- Java 字符串与byte之间的相互转换
- java中byte数组与十六进制字符串相互转换
- Java中字符和byte数组之间的相互转换
- Java基本类型与byte数组之间相互转换
- Java基本类型与byte数组之间相互转换
- Java基本类型与byte数组之间相互转换
- java中byte数组与int类型之间的相互转换(两种方式)
- Java基本类型与byte数组之间相互转换
- java中byte数组与int类型之间的相互转换(两种方式)
- Java 字符串与byte之间的相互转换
- C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换
- C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换
- JAVA中int型数据和byte数组之间的相互转换
- Java基本类型与byte数组之间相互转换方法