字符串转byte数组 java
发布网友
发布时间:2022-04-26 10:23
我来回答
共3个回答
热心网友
时间:2022-06-27 08:09
8b =139怎么超出范围了.只不过代表一个负值而已
看代码,粘贴到类直接运行
public static void main(String[] args) {
String aa = "4c 00 3a 02 00 03 0a 8b";
if(aa == null || aa.length() <= 0) {
System.out.println("aa没有值");
return;
}
Pattern p = Pattern.compile("[^\\da-fA-F\\s]");
Matcher m = p.matcher(aa);
if(m.find()) {
System.out.println("aa非法字符");
return;
}
String[] bb = aa.split("\\s");
byte[] cc = new byte[bb.length];
for(int i = cc.length; i-- > 0;) {
cc[i] = Integer.valueOf(bb[i], 16).byteValue();
System.out.println("cc[" + i + "]=" + cc[i] + " \tbb[" + i + "]=" + bb[i]);
}
}
热心网友
时间:2022-06-27 08:10
是我理解错了,还是题有问题啊。
byte能表示的最大数才255,你里面的8b已经超过这个范畴了啊
热心网友
时间:2022-06-27 08:10
public static void main(String[] args) {
String str = "4c 00 3a 02 00 03 0a";// 8b超出范围了
String[] s = str.split(" ");
byte[] b = new byte[s.length];
for (int i = 0; i < s.length; i++) {
b[i] = Byte.decode("0x" + s[i]);
}
}