首页 > 代码库 > 16进制转换字节数组工具类
16进制转换字节数组工具类
public class StringUtil { public static String str = "696d706f7274"; public static void main(String[] args) { System.out.println(new String(getBytes(str))); } public static boolean isOdd(String str) { int length = str.length(); int isOdd = length % 2; if (isOdd == 0) return false; else return true; } public static byte[] getBytes(String str) { boolean isOdd = isOdd(str); int size = str.length(); if (isOdd) { byte[] byteOdd = new byte[size / 2 + 1]; for (int j = 0, i = 0; i < str.length() - 1; i++) { if (i % 2 == 0) { byte a = getByteFromChar(str.charAt(i)); byte b = getByteFromChar(str.charAt(++i)); byteOdd[j++] = (byte) (a * 16 + b); } } byteOdd[size / 2] = (byte) str.charAt(str.length() - 1); return byteOdd; } else { byte[] byteEven = new byte[size / 2]; for (int j = 0, i = 0; i < str.length(); i++) { if (i % 2 == 0) { byte a = getByteFromChar(str.charAt(i)); byte b = getByteFromChar(str.charAt(++i)); byteEven[j++] = (byte) (a * 16 + b); } } return byteEven; } } public static byte getByteFromChar(char c) { if (c == ‘0‘) { return 0; } else if (c == ‘1‘) { return 1; } else if (c == ‘2‘) { return 2; } else if (c == ‘3‘) { return 3; } else if (c == ‘4‘) { return 4; } else if (c == ‘5‘) { return 5; } else if (c == ‘6‘) { return 6; } else if (c == ‘7‘) { return 7; } else if (c == ‘8‘) { return 8; } else if (c == ‘9‘) { return 9; } else if (c == ‘a‘) { return 10; } else if (c == ‘b‘) { return 11; } else if (c == ‘c‘) { return 12; } else if (c == ‘d‘) { return 13; } else if (c == ‘e‘) { return 14; } else if (c == ‘f‘) { return 15; } return -1; } }
16进制转换字节数组工具类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。