JAVA - преобразовать десятичный MA C адрес в шестнадцатеричный MA C адрес - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу, чтобы метод преобразовал десятичный формат адреса MA C в формат HEX. Я написал этот метод ниже. Видите ли вы в нем fl aws? Какая практика кодирования должна соблюдаться? Что-то, чего мне здесь не хватает?

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);
}

1 Ответ

3 голосов
/ 25 апреля 2020

Вы используете StringBuffer (java 5 введено StringBuilder). Вы используете Integer.valueOf, когда вы должны использовать Integer.parseInt. Я бы предпочел метод, который вернул результат - пусть вызывающий отображает его. И, если вы используете 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() в конце. Используйте любую версию, которую вам легче всего читать.

...