【发布时间】:2015-01-23 22:01:06
【问题描述】:
当我运行它时(它是一个 android 应用程序的一部分)它可以工作。
String[] hex = new String[6];
hex[0] = "A4";
hex[1] = "8A";
hex[2] = "5B";
hex[3] = "9O";
hex[4] = "U4";
hex[5] = "D8";
if (hex.length != 6) {
throw new IllegalArgumentException("Invalid MAC address.");
}
try {
for (int i = 0; i < 6; i++) {
bytes[i] = (byte) Integer.parseInt(hex[i], 16);
}
}
catch (NumberFormatException e) {
throw new IllegalArgumentException("Invalid hex digit in MAC address.");
}
但如果我这样做:
String[] hex = macStr.split("(\\:|\\-)");
if (hex.length != 6) {
throw new IllegalArgumentException("Invalid MAC address.");
}
try {
for (int i = 0; i < 6; i++) {
bytes[i] = (byte) Integer.parseInt(hex[i], 16);
}
}
catch (NumberFormatException e) {
throw new IllegalArgumentException("Invalid hex digit in MAC address.");
}
没用... 我试图找到问题所在,似乎第一个十六进制与第二个不一样;但如果我做一个 println,它们看起来是一样的。
【问题讨论】:
-
变量 macStr 包含什么?