我在做什么:

我有一个十六进制值字符串strHexVal,我正在使用hexBytes将其分配给字节数组DatatypeConverter.parseHexBinary(strHexVal)

我想要的是

字节数组hexBytes的大小应始终为2,即,如果转换后hexBytes的大小为1,我想将数组插入0,如果转换后的大小大于2,则抛出错误

谁能帮我这个?

码:

String strHexVal= "15";
byte[] hexBytes = DatatypeConverter.parseHexBinary(strHexVal);

**Need help with this part:**
if ( hexBytes length is 1) {
   hexBytes[1] = hexBytes[0]
   hexBytes[0] = 0x00; //will this work???
}
else if (hexBytes.length > 2) {
   throw error
}

最佳答案

不,您不能只执行hexBytes[0] = 0x00;,因为Java数组一旦创建便具有固定大小。

您必须创建一个新的byte[]

if ( hexBytes.length == 1) {
    hexBytes = new byte[] { 0, hexBytes[0] };
}


确保确定hexBytes.length也为0时该怎么做。如果输入字符串为空,则将是这种情况。

10-04 11:17