我正在尝试编写一个简单的程序,它会随机生成3个整数,然后将它们放入数组中,然后将它们连接成一个整数序列,但它会抛出错误
这是代码:
int [] kol=new int[3];
for(int j=0;j<3;j++) {
kol[j]=(int)Math.round(Math.random() * 89999) + 10000;
System.out.print(kol[j] +"\n" );
}
String ma=kol[0]+","+kol[1]+","+kol[2]+";";
System.out.println(ma);
我也尝试过:
int b = Integer.parseInt(Integer.toString(kol[0]) + Integer.toString(kol[1]) +
Integer.toString(kol[2]));
System.out.println(b);
但同样的错误:
Exception in thread "main" java.lang.NumberFormatException: For input
at java.lang.NumberFormatException.forInputString(Unknown Source)
string: "715534907077099"
答案 0 :(得分:6)
整数范围不足以获得较大的值。
int MAX_VALUE = 2147483647
int MIN_VALUE = -2147483648
因此,请将java.math.BigInteger用于相同的
答案 1 :(得分:0)
在java中,int
类型是32位有符号值,其最大值为2147483647(2 ^ 31-1)。
显然,您的值“715534907077099”远大于Integer.MAX_VALUE。如果它仍然低于Long.MAX_VALUE,则int n = Long.parseLong(strValue)
将起作用。
但如果您不想达到上限,请改用BigInteger
:
BigInteger bi = new BigInteger(Integer.toString(kol[0]) + Integer.toString(kol[1]) +
Integer.toString (kol[2]));
System.out.println(bi);