在Java中高效地将长字符串转换为长字符串

在Java中高效地将长字符串转换为长字符串,java,types,type-conversion,Java,Types,Type Conversion,我有一个很长的字符序列,比如1232222300000000000001。我想把这个转换成长的。在Java中最有效的方法是什么 更新:序列的最大长度为31个字符您不能将31位数字放入一个长字符中,但仅供参考: long primitive = Long.parseLong(longString); Long object = Long.valueOf(longString); 首先,像这样的字符串值永远不会适合long(它太大了) 您将需要使用类型和: 转换十进制字符串 将BigInte

我有一个很长的字符序列,比如1232222300000000000001。我想把这个转换成长的。在Java中最有效的方法是什么


更新:序列的最大长度为31个字符

您不能将31位数字放入一个长字符中,但仅供参考:

 long primitive = Long.parseLong(longString); 
 Long object = Long.valueOf(longString);

首先,像这样的字符串值永远不会适合
long
(它太大了)

您将需要使用类型和:

转换十进制字符串 将BigInteger表示为 大整数。字符串表示法 由可选的减号组成 后跟一个或多个序列 十进制数字。将字符转换为数字 映射由提供 字符。数字字符串可能不存在 包含任何无关字符 (例如空格)。


BigDecimal
也可用于将字符串转换为长字符串

对。示例字符串是“太长”。很抱歉使其比要求的长度太长,最大长度将是31个字符,我需要转换。鉴于long.max_VALUE=2^63-1,其中有19个数字,它仍然不可能适合长字符串。按照建议使用BigInteger。第一行抛出错误。所以我很确定这不起作用java.lang.NumberFormatException这是因为你的号码太长了。您需要使用BigInteger,但不是他心目中的31位字符串。这些太长了,我们在这里说的是十进制,对吗?不是八进制。如前所述,没有直接的方法可以将31位十进制数放入长整数中。不知何故,它需要转换(仅使用最低/最高有效数字,使用2个长字符,或…)。一个关于这个数字将用于什么的提示将是有益的。
BigDecimal