Java:格式化数字错误?

标签 java string number-formatting numberformatexception

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

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

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

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)

有人可以帮忙吗?

最佳答案

因为

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

将基数 10 传递给 parseInt()(这在十进制中无效)。用16个赞

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

fromDecToHex 应该是

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

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

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

关于Java:格式化数字错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626864/

相关文章:

python - 将不同的列表数据类型连接成字符串

java - 格式化十进制数

python - 格式化 numpy 浮点值

Java并行流使用reduce会变慢吗?

java - 当类为 XmlAccessType.NONE 时,如何 JAXB 编码 JavaFX 属性类?

java - 无法创建新文件 : The device is not ready

arrays - 如何快速获取字符串数组中的最后 8 个字符?

c - 末尾不带数字的两位数字符串加法

c# - .net : What is the correct format string for a fixed number of decimal places, 但 "x.xxE+xxx"对于大数?

java - 用于记录在给定项目/文件/方法上花费的时间的 Eclipse 插件?