首页 > 解决方案 > 数字系统代码中的 Java 数字格式异常错误

问题描述

我正在做一个java数字转换器,每当我尝试我的十六进制到十进制转换器时,它总是给我一个java.lang.NumberFormatException我想要转换的任何类型。每当我输入字符串值(例如 ABC)时,控制台都会显示此错误。我将如何解决这个错误?错误发生在这一行: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));

        }

    }

标签: javaarrayshexdecimal

解决方案


如果要解析十六进制数字,则必须使用的双参数版本valueOf,将基数(十六进制为 16)指定为第二个参数

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

推荐阅读