在Java中将十六进制字符串转换为字节数组时出错
我正在寻找一种将表示十六进制值的字符串转换为字节数组的方法。此代码适用于偶数字符串长度,但不适用于奇数字符串长度。如果字符串长度为奇数,则得到java.lang.StringIndexOutOfBoundsException。请帮忙在Java中将十六进制字符串转换为字节数组时出错,java,Java,我正在寻找一种将表示十六进制值的字符串转换为字节数组的方法。此代码适用于偶数字符串长度,但不适用于奇数字符串长度。如果字符串长度为奇数,则得到java.lang.StringIndexOutOfBoundsException。请帮忙 public byte[] hexStringToByteArray(String s) { byte[] data = null; if(! s.equals("")){ int len = s.leng
public byte[] hexStringToByteArray(String s) {
byte[] data = null;
if(! s.equals("")){
int len = s.length();
data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
}
return data;
}
for循环表示在i
将循环条件更改为i