我真的有一长串字符,例如123222222222230000000000001。我想把它转换为long。在Java中最有效的方法是什么?
更新:序列的最大长度为31个字符
答案 0 :(得分:9)
首先,像这样的字符串值永远不会适合long
(它很大),
您需要使用BigInteger
类型和constructor that accepts a String
parameter:
翻译十进制字符串 将BigInteger表示为一个 BigInteger的。字符串表示 由可选的减号组成 然后是一个或多个序列 十进制数字。字符到数字 映射由。提供 Character.digit将。 字符串可能不会 包含任何无关的字符 (例如,空白)。
答案 1 :(得分:1)
您不能将31位数字放入长整数中,但仅供参考:
long primitive = Long.parseLong(longString);
Long object = Long.valueOf(longString);
答案 2 :(得分:1)
BigDecimal
也可用于将字符串转换为long。