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

时间:2015-11-27 18:47:27

标签: 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.*;
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;

}

1 个答案:

答案 0 :(得分:0)

您隐含地假设sum.txt文件的每一行至少有i个元素(i最多25个),以“”分隔。如果不是这样,则会出现所述的例外情况。

如果要总结文件中的所有数字,则必须使用嵌套循环。循环遍历这些行,然后拆分该行,然后遍历内部拆分数组的条目。