我在做什么:
我有一个十六进制值字符串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时该怎么做。如果输入字符串为空,则将是这种情况。