Java 字符串、数值与16进制相互转化 您所在的位置:网站首页 java字符串怎么转换成字符 Java 字符串、数值与16进制相互转化

Java 字符串、数值与16进制相互转化

#Java 字符串、数值与16进制相互转化| 来源: 网络整理| 查看: 265

字符串、数值与16进制相互转化

首先创建一个工具类:

package c; public class DataUtils { /* * 字节数组转16进制字符串 */ public static String bytesToHexString(byte[] bArr) { if (bArr == null) { return null; } StringBuffer sb = new StringBuffer(bArr.length); String sTmp; for (int i = 0; i < bArr.length; i++) { sTmp = Integer.toHexString(0xFF & bArr[i]); if (sTmp.length() < 2) sb.append(0); sb.append(sTmp); } return sb.toString(); } /** * @param n * @Title: intTohex * @Description: int型转换成16进制 * @return: String */ public static String intTohex(int n) { StringBuffer s = new StringBuffer(); String a; char[] b = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; while (n != 0) { s = s.append(b[n % 16]); n = n / 16; } a = s.reverse().toString(); if ("".equals(a)) { a = "00"; } if (a.length() == 1) { a = "0" + a; } return a; } /** * 字符串转16进制字符串 * * @param strPart * @return */ public static String string2HexString(String strPart) { StringBuffer hexString = new StringBuffer(); for (int i = 0; i < strPart.length(); i++) { int ch = (int) strPart.charAt(i); String strHex = Integer.toHexString(ch); hexString.append(strHex); } return hexString.toString(); } /** * 十六进制转字节数组 * * @param src * @return */ public static byte[] hexString2Bytes(String src) { int l = src.length() / 2; byte[] ret = new byte[l]; for (int i = 0; i < l; i++) { ret[i] = (byte) Integer .valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue(); } return ret; } /** * Hex字符串转byte * * @param inHex 待转换的Hex字符串 * @return 转换后的byte */ public static byte hexToByte(String inHex) { return (byte) Integer.parseInt(inHex, 16); } /** * hex字符串转byte数组 * * @param inHex 待转换的Hex字符串 * @return 转换后的byte数组结果 */ public static byte[] hexToByteArray(String inHex) { int hexlen = inHex.length(); byte[] result; if (hexlen % 2 == 1) { //奇数 hexlen++; result = new byte[(hexlen / 2)]; inHex = "0" + inHex; } else { //偶数 result = new byte[(hexlen / 2)]; } int j = 0; for (int i = 0; i < hexlen; i += 2) { result[j] = hexToByte(inHex.substring(i, i + 2)); j++; } return result; }

Java 代码:

byte[] b = {0x12, 0x23, 0x5a}; // 字节转换为16进制字符串 String hexStr = bytesToHexString(b); System.out.println("hexStr:" + hexStr); // int 转 16进制字符串 String hexStr1 = Integer.toHexString(2345); System.out.println("hexStr1:" + hexStr1); // 16进制转字节数组 byte[] c = hexString2Bytes(Integer.toHexString(2345)); System.out.println("十六进制字节数组:" + c); // int 转16进制字符串 System.out.println(intTohex(2345)); // int转16进制 后转16进制字节数组 System.out.println("十六进制字节数组:" + DataUtils.hexToByteArray(Integer.toHexString(2345)));

打印结果:

hexStr:12235a hexStr1:929 十六进制字节数组:[B@63c12fb0 929 十六进制字节数组:[B@b1a58a3


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有