JAVA - 将十进制MAC地址转换为十六进制MAC地址

JAVA - Convert decimal MAC address into hexadecimal MAC address

我想要一种将十进制格式 MAC 地址转换为十六进制格式的方法。 我在下面写了这个方法。你看到它有什么缺陷吗?应遵循任何编码实践?我在这里缺少什么吗?

public static void main(String[] args) {
    String macDec = "76.177.205.33.164.80";
    convertToHex(macDec);
    System.out.println(macDec + " should be converted to 4CB1CD21A450");
}

private static void convertToHex(String macDec) {
    String[] macs = macDec.split("\.");
    String hexMac = null;
    StringBuffer buff = new StringBuffer();
    for(String mac : macs) {
        hexMac = Integer.toHexString(Integer.valueOf(mac));
        buff.append(hexMac.toUpperCase());
    }
    System.out.println(buff);
}

您正在使用 StringBuffer(java 5 引入 StringBuilder)。当您应该使用 Integer.parseInt 时,您却使用了 Integer.valueOf。我更喜欢返回结果的方法——让调用者显示它。而且,假设您使用的是 Java 8+,您可以使用 map 进行流式传输和转换。喜欢,

private static String convertToHex(String macDec) {
    return Arrays.stream(macDec.split("\."))
            .map(mac -> Integer.toHexString(Integer.parseInt(mac)))
            .collect(Collectors.joining()).toUpperCase();
}

我把toUpperCase()移到了最后。使用您认为最容易阅读的版本。