我有一个输入文件,格式如下:
1 // No. of test case
N Q // N= Number of string and Q= Number of Query
a
bvcc
.
.
upto N string
3763717342424960
212
.
.
. upto Q
我收到以下错误:
"main" java.lang.NumberFormatException: For input string: "3763717342424960"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
我的代码:
int t = Integer.parseInt(in.readLine());
while(t>0){
t--;
StringTokenizer sr = new StringTokenizer(in.readLine());
int n = Integer.parseInt(sr.nextToken());
int Q = Integer.parseInt(sr.nextToken());
String[] S = new String[n];
for(int i=0;i<n;i++) S[i]=in.readLine();
while(Q>0){
Q--;
int index = Integer.parseInt(in.readLine());
Batman(index, S, L,n-1);
}
}
请帮我解决这个问题
答案 0 :(得分:1)
您获得此异常的原因是因为最大值为2,147,483,647(含)。(2 ^ 31 -1)。
我建议你使用长数据类型。
有关数据类型及其大小的更多信息,请参阅:Basic Java Data Types
请告诉我这是否有帮助!
答案 1 :(得分:0)
对于整数来说,这个数字很大。
答案 2 :(得分:0)
最大整数为2147483647
使用long
代替int
答案 3 :(得分:0)
你的字符串对于int来说太长了,试试Long
的Long.parseLong
答案 4 :(得分:0)
您尝试解析的数字大于maximum value an Integer can hold.。
正如其他人所建议的那样,尝试将该号码存储为长号。您可以使用Long#parseLong()方法将String转换为long。
答案 5 :(得分:0)
使用Long prarseLong,因为该值超出了int的限制。