Java 十六进制字符串到十进制的转换

Java 十六进制字符串到十进制的转换,java,Java,我需要在java中将十六进制字符串转换为十进制 我的十六进制值是“00000156abe980”。 我需要的输出是1471654128000 我用java做了以下工作 public static void main (String args []) { String hexValue = " 00000156A56BE980 "; Integer result = Integer.parseInt(hexValue, 16); System.out.println(result); }

我需要在java中将十六进制字符串转换为十进制

我的十六进制值是“00000156abe980”。

我需要的输出是1471654128000

我用java做了以下工作

public static void main (String args [])
{
  String hexValue = " 00000156A56BE980 ";
  Integer result = Integer.parseInt(hexValue, 16);
 System.out.println(result);
}
但我得到了以下错误

输入字符串“00000156A56BE980”的数字格式异常

我试着让long也犯同样的错误。。对于其他十六进制值,它来了,但当我们给出更大值的十六进制字符串时,它显示了错误

我们如何把这个数字转换成十进制? 有人能帮我解决这个问题吗?

这样试试看

import java.math.*;

class Main {
    public static void main (String args [])
    {
        String hexValue = "00000156A56BE980";
        BigInteger result = new BigInteger(hexValue, 16);
        System.out.println(result);
    }
}
也见此


问题可能是因为您的值不符合
整数的值范围(-231到232-1)
-请参见整数(>2^32)的数字太大

(字符串表示的值不是int类型的值。)


看一看

这个数字对于32位
int

尝试改用
long

public static void main(String[] args) {
    String hexValue = "00000156A56BE980";
    long result = Long.parseLong(hexValue, 16);
    System.out.println(result);
}

注意:数字中不能有空格。您可以调用
.trim()
来删除它们。

要使代码正常工作,需要做两件事:

  • 删除修剪字符串的空格
  • 结果不适合整数,因此请改用Long或BigInteger

  • 是的,我也试过。。抛出相同的错误..您会得到一个
    NumberFormatException
    ,因为您试图解析的字符串末尾有一个空格。把空间清理掉。此外,如果该值太大,无法放入
    int
    中,则会出现此异常。
    repl.it
    仍不工作New BigInteger(hexValue)正在为我工作。。谢谢Dax@金牛座:很高兴听到。@AsteriskNinja我现在在几个系统上试过了-链接没有死;我想你有一个问题…我想我有我得到错误
    这个网站不能提供一个安全的连接
    lol
     public static void main(String[] args) {
        String hexValue = " 00000156A56BE980 ";
        long result = Long.parseLong(hexValue.trim(), 16);
        System.out.println(result);
        }