Java ошибка исключения числового формата в коде систем счисления - PullRequest
0 голосов
/ 30 января 2020

Я делаю java числовой преобразователь, и всякий раз, когда я пытаюсь использовать мой шестнадцатеричный в десятичный преобразователь, он всегда дает мне java.lang.NumberFormatException для того, что я печатаю, что я хочу преобразовать. Консоль отображает эту ошибку всякий раз, когда я набираю строковое значение, например, AB C. Как бы я go об исправлении этой ошибки? Ошибка возникает в этой строке: int intNum = Integer.valueOf(numHexadecimal); в коде.

public static void hexToDecimal() {

        System.out.println("Enter your hexadecimal number");
        numHexadecimal = input.next();
        hexArray = numHexadecimal.toCharArray();

            int intNum = Integer.valueOf(numHexadecimal);

            int counter = 0;

            String hexVal = "";

            int digit;

            digit = intNum % 16;

            switch (digit) {
            case 1:
                hexVal+="F"; break;
            case 2:
                hexVal+="E"; break;
            case 3:
                hexVal+="D"; break;
            case 4:
                hexVal+="C"; break;
            case 5:
                hexVal+="B"; break;
            case 6:
                hexVal+="A"; break;
            default:
                hexVal+=Integer.toString(digit);          
            }

            intNum = intNum/16;

            for (counter = hexVal.length()-1; counter >= 0; counter--)
                System.out.print(hexVal.charAt(counter));

        }

    }

1 Ответ

3 голосов
/ 30 января 2020

Если вы хотите разобрать шестнадцатеричные числа, вы должны использовать двухпараметрическую версию valueOf, указав основание (16 для шестнадцатеричного) в качестве второго параметра

int intNum = Integer.valueOf(numHexadecimal, 16);
...