gpt4 book ai didi

Java - 对象数组越界问题

转载 作者:行者123 更新时间:2023-11-29 06:03:12 24 4
gpt4 key购买 nike

我正在尝试将输入文件中的数据存储到一系列对象中,然后将这些对象存储在数组中。问题是它给我一条错误消息,说我的数组超出范围。

它从文件中获取数据没有问题,但我不知道为什么。

这是我得到的:

public static void main(String[] args) throws IOException
{
Scanner scan = new Scanner(new File("input.txt"));
Scanner keyboard = new Scanner(System.in);

int numItems = scan.nextInt();
scan.nextLine();


Books bookObject[] = new Books[numItems];
Periodicals periodicalObject[] = new Periodicals[numItems];

for(int i = 0; i < numItems; i++)
{
String tempString = scan.nextLine();
String[] tempArray = tempString.split(",");

if(tempArray[0].equals("B"))
{
char temp = 'B';
//THIS IS WHERE THE IDE SAYS THE ERROR IS
bookObject[i] = new Books(temp, tempArray[1],tempArray[2], tempArray[3], tempArray[4], tempArray[5]);
}
else if(tempArray[0].equals("P"))
{
char temp = 'P';
periodicalObject[i] = new Periodicals(temp, tempArray[1], tempArray[2], tempArray[3], tempArray[4], tempArray[5]);
}
}
}

这是输入:

4
B,C124.S17,The Cat in the Hat,Dr. Seuss,Children’s Literature
P,QJ072.C23.37.4,Computational Linguistics,37,4,Computational Linguistics
P,QJ015.C42.55.2,Communications of the ACM,55,2,Computer Science
B,F380.M1,A Game of Thrones,George R. R. Martin,Fantasy Literature

最佳答案

我的猜测是临时数组中的项目比您预期的要少。试试这个。

    if(tempArray[0].equals("B"))
{
char temp = 'B';
//THIS IS WHERE THE IDE SAYS THE ERROR IS
System.out.println(tempArray.length);
bookObject[i] = new Books(temp, tempArray[1],tempArray[2], tempArray[3], tempArray[4], tempArray[5]);
}

它应该告诉您那里有多少项目。

关于Java - 对象数组越界问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9389596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com