差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

java:basic:converter [2017/08/19 23:33]
java:basic:converter [2023/06/25 09:48] (目前版本)
行 1: 行 1:
 +{{tag>​java}}
 +====== Converter ======
 +===== Hex String to byte array =====
 +目的是將0x8086轉為長度為2的byte array,內容為{0x80,​ 0x86}:
 +<code java>
 + static public byte[] parseHextringtoBytes(String hexStr){
 + hexStr = hexStr.replaceAll("​0[x|X]",​ ""​);​
 + if( hexStr.length() % 2 != 0 ) {
 + hexStr = "​0"​.concat(hexStr);​
 + }
 + char[] hexChars = hexStr.toCharArray();​
 + byte[] b = new byte[hexStr.length() / 2];
 + for (int i = 0; i < b.length; i++) {
 + int index = i * 2;
 + int v = Integer.parseInt(String.valueOf(Arrays.copyOfRange(hexChars,​ index, index+2)), 16);
 + b[i] = (byte) v;
 + }
 + return b;
 + }
 +</​code>​
 +如果使用BigInteger.toByteArray會因為0x80為負數而多一個byte 0x00。