Java 将仅包含数字的长字符串转换为长字符串

Java 将仅包含数字的长字符串转换为长字符串,java,string,long-integer,typeconverter,Java,String,Long Integer,Typeconverter,我试图将一个字符串(32位)转换为长字符串,它返回一个NumberFormatException。我已经用Long.parseLong()和一个Long对象尝试过了,但其中大部分都有效。 代码: 我也试过了 class ConvertStringToLong{ public static void main(String in){ long out; out = new Long(in); System.out.println(out);

我试图将一个字符串(32位)转换为长字符串,它返回一个NumberFormatException。我已经用Long.parseLong()和一个Long对象尝试过了,但其中大部分都有效。 代码:

我也试过了

class ConvertStringToLong{
    public static void main(String in){
        long out;
        out = new Long(in);
        System.out.println(out);
    }
}

long
数据类型是一个64位有符号整数,因此其最大值为2^63-1,长度为19位。要表示比这更大的数字,您需要使用不同的数据类型,例如,它允许任意大的数字。构造函数
new biginger(String val)
将字符串解析为biginger。

此处的文档()说明:

BigInteger必须支持-2^Integer.MAX\u值范围内的值 (独占)到+2^Integer.MAX_值(独占),并且可能支持值 超出这个范围。可能素数值的范围是有限的 并且可能小于BigInteger的完全支持的正范围。 范围必须至少为1到2^500000000


您可以选择使用BigInteger对象。

您能告诉我们确切的输入字符串吗?听起来字符串有问题32位超出了
(64位有符号)值的范围什么不起作用?听起来你需要一个
BigInteger
来实现这个。。。值为有19位数字的
9223372036854775807
。您试图解析什么值?长最大值为19位。还有,为什么您将方法命名为main,而它没有遵循Java的主方法签名
main(String[]in)
,这让人感到困惑。
class ConvertStringToLong{
    public static void main(String in){
        long out;
        out = new Long(in);
        System.out.println(out);
    }
}