java中字节数组如何初始化呢?
下文笔者讲述将一个十六进制字符串初始化为一个数组的方法分享,如下所示:
实现思路:
定义一个十六进制字符串转换数组的方法
方法中对十六进制字符串依次遍历
然后转成字节数
例:
package com.java265.other;
public class Test14 {
/**
* java265.com 示例 十六进制字符串转字节
*/
public static void main(String... args) {
byte[] t = hexStringToBytes("A23d454646");
printHexString(t);
}
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;
}
private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}
// 将指定byte数组以16进制的形式打印到控制台
public static void printHexString(byte[] b) {
for (int i = 0; i < b.length; i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
System.out.print(hex.toUpperCase());
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


