如何将字符串Mac地址转换为字节数组

ros*_*esr 3 java string mac-address bytearray

我有String MacAddress,我需要将其转换为字节数组.Java不会让我直接转换抛出一个数字格式的异常.这就是我现在正在做的事情

clientMac[0] = (byte)Integer.parseInt(strCameraMacId.substring(0, 2));
Run Code Online (Sandbox Code Playgroud)

我试着一步一步地做

String mc = strCameraMacId.substring(0,2);
        int test = Integer.parseInt(mc);
        clientMac[0] = (byte) test;
Run Code Online (Sandbox Code Playgroud)

但是字符串mc由值"08"组成,并且在执行int到byte转换之后,我将丢失零.我尝试转换的mac地址是"08-00-23-91-06-48",我最终可能会失去所有的零.我会吗?谁有人知道如何处理这个问题?

非常感谢

Arj*_*kar 5

你没有输掉'0'.因为a byte不是a string,而8和08是相同的.

但更重要的是你的代码中的这个错误:

你正在使用这种parseInt方法.这会将您的地址解析为十进制整数.这不起作用,因为MAC地址,当你显示它们的方式分割时通常是十六进制数字.例如,您可以遇到'A8'而不是'08'.

您需要使用不同的方法:

Integer.parseInt(String s, int radix)
Run Code Online (Sandbox Code Playgroud)

通过radix16,你应该是好的.