作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想在java中将一个十六进制字符串转换为long。
我尝试过一般转换。
String s = "4d0d08ada45f9dde1e99cad9";
long l = Long.valueOf(s).longValue();
System.out.println(l);
String ls = Long.toString(l);
但我收到此错误消息:
java.lang.NumberFormatException: For input string: "4d0d08ada45f9dde1e99cad9"
有没有办法在java中将String转换为long?还是我在尝试这是不可能的!
谢谢!
最佳答案
Long.decode(str)
接受多种格式:
Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
DecodableString:
- Signopt DecimalNumeral
- Signopt 0x HexDigits
- Signopt 0X HexDigits
- Signopt # HexDigits
- Signopt 0 OctalDigits
Sign:
- -
但是在您的情况下,这无济于事,您的 String 超出了 long 可以容纳的范围。您需要一个 BigInteger
:
String s = "4d0d08ada45f9dde1e99cad9";
BigInteger bi = new BigInteger(s, 16);
System.out.println(bi);
输出:
23846102773961507302322850521
为了比较,这里是 Long.MAX_VALUE
:
9223372036854775807
关于java - 如何在java中将十六进制字符串转换为long?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5153811/
我是一名优秀的程序员,十分优秀!