Java:格式化数字错误?

dze*_*siz 2 java string number-formatting numberformatexception

我遇到一个关于使用String输入和输出转换数字格式的类的问题:

public class Conversion{

static int result;

public static String fromHexToDec (String clientInput) {
    result= Integer.parseInt(clientInput, 10);
    return Integer.toString(result);
}

public static String fromDecToHex (String clientInput) {
    result= Integer.parseInt(clientInput, 16);
    return Integer.toString(result);
}

public static String fromOctTo4 (String clientInput) {
    result= Integer.parseInt(clientInput, 4);
    return Integer.toString(result);
}

public static String from4ToOct(String clientInput) {
    result= Integer.parseInt(clientInput, 8);
    return Integer.toString(result);
}

public static String formBinToDec(String clientInput) {
    result= Integer.parseInt(clientInput, 10);
    return Integer.toString(result);
}

public static String fromDecToBin(String clientInput) {
    result= Integer.parseInt(clientInput, 2);
    return Integer.toString(result);
}

public static String from5To7(String clientInput) {
    result= Integer.parseInt(clientInput, 7);
    return Integer.toString(result);
}

public static String from7To5(String clientInput) {
    result= Integer.parseInt(clientInput, 5);
    return Integer.toString(result);
}
Run Code Online (Sandbox Code Playgroud)

}

我收到此错误尝试在main方法中从HexToDec运行:

Exception in thread "main" java.lang.NumberFormatException: For input string: "C"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Konverzija.fromHexToDec(Conversion.java:9)
at Test.main(Test.java:5)
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮忙吗?

Ell*_*sch 5

因为

public static String fromHexToDec (String clientInput) {
    result= Integer.parseInt(clientInput, 10);
    return Integer.toString(result);
}
Run Code Online (Sandbox Code Playgroud)

正在将基数传递10parseInt()(并且在十进制中无效).使用16喜欢

public static String fromHexToDec (String clientInput) {
    result= Integer.parseInt(clientInput, 16);
    return Integer.toString(result);
}
Run Code Online (Sandbox Code Playgroud)

而且fromDecToHex大概应该是

public static String fromDecToHex(String clientInput) {
    int result = Integer.parseInt(clientInput, 10);
    return Integer.toString(result, 16);
}
Run Code Online (Sandbox Code Playgroud)

要么

public static String fromDecToHex(String clientInput) {
    int result = Integer.parseInt(clientInput);
    return String.format("%02X", result);
}
Run Code Online (Sandbox Code Playgroud)

第二个具有零填充的潜在优势.