所以我正在编写一个代码来在数组中添加 no present 并且我得到了一个运行时:线程“main”中的异常 java.lang.NumberFormatException:对于输入字符串:“1000000001 1000000002 1000000003 1000000004 1000000005”在 java.lang.NumberFormatException.forInputString(NumberFormatException.java.Long.java.parse at java.Long.Long.java:65) :589) 在 java.lang.Long.parseLong(Long.java:631) 在 Solution.main(Solution.java:20)对于以下代码,我应该在代码中更改什么,请帮助。这是代码:import java.io.*;public class Solution {public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ; int n= Integer.parseInt(br.readLine()); long ar[] = new long[n]; for(int i=0;i<n;i++) { ar[i] = Long.parseLong(br.readLine()); } Long sum =0L; for(int i=0;i<n;i++) { sum= sum + ar[i]; } System.out.println(sum);} }
3 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
您正在阅读完整的一行
"1000000001 1000000002 1000000003 1000000004 1000000005"
不是要解析的有效数字。
首先打破它 <space>
并单独转换它们。
慕慕森
TA贡献1856条经验 获得超17个赞
如果这
"1000000001 1000000002 1000000003 1000000004 1000000005"
是您对 的输入Long.parseLong(),异常意味着这不是数字。数字不包含空格。如果您想单独解析该行中的数字,则需要在执行此操作之前拆分该行。例如
String[] numberStrings = br.readLine().split(" ");
然后你可以Long.parseLong()为numberStrings.
编辑您需要更改的内容
取而代之的是:
for(int i=0;i<n;i++)
{
ar[i] = Long.parseLong(br.readLine());
}
你需要这样做:
String[] numberStrings = br.readLine().split(" ");
for(int i=0;i<n;i++)
{
ar[i] = Long.parseLong(numberStrings[i]);
}
添加回答
举报
0/150
提交
取消