我想在java中将十六进制字符串转换为长字符串。
我尝试过一般转换。
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?或者我正在尝试这实际上是不可能的!
Thanks!
Long.decode(str)接受多种格式:
接受十进制、十六进制和八进制
由以下给出的数字
语法:
可解码字符串:
- Signopt DecimalNumeral
- Signopt 0x HexDigits
- Signopt 0X HexDigits
- Signopt # HexDigits
- Signopt 0 OctalDigits
Sign:
但在你的情况下,这不会有帮助,你的字符串超出了 long 可以容纳的范围。你需要一个BigInteger:
String s = "4d0d08ada45f9dde1e99cad9";
BigInteger bi = new BigInteger(s, 16);
System.out.println(bi);
Output:
23846102773961507302322850521
为了比较,这里是Long.MAX_VALUE:
9223372036854775807
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)