Java 如何找到每行的数组长度?

Java 如何找到每行的数组长度?,java,arrays,Java,Arrays,每当我运行这段代码时,我总是得到一个ArrayOutOfBoundException。我不知道有什么不对,但仔细查看后,错误是当我试图将字符串转换为数字并将其设置为数组时。有没有关于为什么以及如何修复它的想法 Sum.txt: 12 2 3 4 5 6 7 8 9 10 90183284 132947132984 1341324245 45 2435 2345 32 6 7 7 578 代码: import java.io.*; 导入java.util.*; 公共类金额{ 静态整数行=0

每当我运行这段代码时,我总是得到一个
ArrayOutOfBoundException
。我不知道有什么不对,但仔细查看后,错误是当我试图将字符串转换为数字并将其设置为数组时。有没有关于为什么以及如何修复它的想法

Sum.txt:

12 2 3 4 5 6 7 8 9 10

90183284 132947132984

1341324245 45 2435 2345 32 6 7  7 578
代码:

import java.io.*;
导入java.util.*;
公共类金额{
静态整数行=0;
静态int数组值=0;
公共静态void main(字符串[]args){
System.out.println(addnumbers(readFile());
}
公共静态int[]readFile(){
字符串下一行;
int[]inputinarray=新的int[25];
试一试{
//TODO自动生成的方法存根
@抑制警告(“资源”)
扫描仪输入=新扫描仪(新文件(“sum.txt”);
while(input.hasNext()){
nextline=input.nextline();
for(int i=0;i
您隐式地假设
sum.txt
文件的每一行至少有
i
元素(
i
最多25个),由“”分隔。如果这不是真的,则会出现声明的异常


如果要对文件中的所有数字求和,必须有嵌套的循环。先循环行,然后分割行,然后循环内部分割数组的条目。

提示。调试此行:
inputinarray[i]=Integer.parseInt(nextline.split(“”[i]);
nextline.split(“”[i]
-您如何知道拆分结果将至少包含那么多元素?打印此
下一行。拆分(“”).length
,该值将小于25。请添加sum.txt的内容。您需要重新考虑如何存储每一行。当前,您正在覆盖每一行上的输入数组。尽管您声明的值为true,但尚未回答如何修复它?
import java.io.*;
import java.util.*;

public class Sum {
static int lines = 0;
static int arrayvalue = 0;

public static void main(String[] args) {

    System.out.println(addnumbers(readFile()));
}

public static int[] readFile() {
    String nextline;
    int[] inputinarray = new int[25];

    try {
        // TODO Auto-generated method stub
        @SuppressWarnings("resource")
        Scanner input = new Scanner(new File("sum.txt"));

        while (input.hasNext()) {
            nextline = input.nextLine();
            for (int i = 0; i < inputinarray.length; i++) {
                // inputinarray populated as integer array
                // ***The error happens here:****
                inputinarray[i] = Integer.parseInt(nextline.split(" ")[i]);
            }
        }
    } catch (FileNotFoundException e) {
        System.out.println("File not found");

    }
    return inputinarray;
}

public static int addnumbers(int[] inputinarray) {
    int rowtotal = 0;
    for (int i = 0; i < inputinarray.length; i++) {
        rowtotal += inputinarray[i];
    }
    return rowtotal;

}