将只包含数字的长字符串转换为长整数

问题描述 投票:0回答:2

我正在尝试将String(32位数)转换为long并返回NumberFormatException。我已经尝试过使用Long.parseLong()和Long对象,但是它们的骨骼起作用了。代码:

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

我也尝试过

class ConvertStringToLong{
    public static void main(String in){
        long out;
        out = new Long(in);
        System.out.println(out);
    }
}
java string long-integer typeconverter
2个回答
0
投票

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


0
投票

此处的文档(https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html)说:

BigInteger必须支持-2 ^ Integer.MAX_VALUE范围内的值(不包括)到+ 2 ^ Integer.MAX_VALUE(不包括),并且可能支持值超出该范围。可能质数的范围是有限的并且可能小于BigInteger的完整支持的正数范围。范围必须至少为1到2 ^ 500000000。

您可以偏爱使用BigInteger对象。

© www.soinside.com 2019 - 2024. All rights reserved.