ArrayIndexOutOfBoundsException:100,初学者项目

时间:2017-03-19 00:37:45

标签: java arrays indexing indexoutofboundsexception

所以我正在为这个项目工作,我将读取一个名为“randomNumbers”的文本文件,将其存储在一个数组中并将其打印到屏幕上。它符合要求,但当我运行代码时,我得到了

INSERT ... ON DUPLICATE KEY UPDATE

我尽力解决这个问题,但我陷入困境。

这是我到目前为止的代码,

enter code here
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
at projectFour.read_file(projectFour.java:32)
at projectFour.main(projectFour.java:13)

3 个答案:

答案 0 :(得分:0)

您发布的code完美无误。

您只需 以确保行数(第一行除外)为(100)。

要证明小规模测试,例如:

将其放入randomNumbers.txt

10
1
2
3
4
5
6
7
8
9
10

答案 1 :(得分:0)

那是因为你的文件中有超过100个数字。如果您只想阅读100个数字,您可以:

public static void read_file()
{
    try
    {
        File file = new File("randomNumbers.txt");
        Scanner scan = new Scanner(file);
        int maxNumberInFile = convertingStringToInt(scan.nextLine());   // read the first line which is 100 to set array size
        global_numbers = new int[maxNumberInFile]; // set the array size equal to the first line read which is 100
        int i = 0;

        //while(scan.hasNextLine()) // while there is a next line to read, do this...
        while (i < maxNumberInFile)
        {
            String line = scan.nextLine();
            global_numbers [i] = convertingStringToInt(line);
            i++;
        }
        scan.close();
    }

    catch(IOException ex)
    {
        ex.printStackTrace();
    }

}

如果您不确切知道文件中有多少个数字,可以使用List来存储数字。

答案 2 :(得分:0)

谢谢,它现在正在读取文件,但是在我的conversionToStringMethod中有一些不正确的东西,因为所有输出值都是-460,除了读取文件中的最后一个数字....

enter code here
  public static int convertingStringToInt(String numbers) //what does string       number equal? why/where is it declared?
 {  
  try
     {
        return Integer.parseInt(numbers);
     }

  catch(NumberFormatException n)
     {
           return -460;
     }         
}