我正在尝试将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);
}
}
long
数据类型是64位有符号整数,因此其最大值是2 ^ 63-1,它是19位长。为了表示更大的数字,您将需要使用其他数据类型,例如BigInteger,该数据类型允许任意大的数字。构造函数new BigInteger(String val)
将字符串解析为BigInteger。
此处的文档(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对象。