0

所以,我有这个小问题。我提示用户输入需要存储在多变量数组中的 3 个变量(Str、Str、Int),但我无法让它工作。任何帮助将不胜感激。

LibraryBook[] book = new LibraryBook[5];

//inputing a new book
Scanner input = new Scanner(System.in);
LibraryBook[] myBook = new LibraryBook[0];

System.out.println("Enter book name: ");
String title = input.nextLine().trim();
System.out.println("Enter author name: ");
String author = input.nextLine().trim();

System.out.println("Enter # pages: ");
int pages = input.nextInt();

myBook[0] =new LibraryBook(title,author,pages);

我收到这个错误

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at LibraryBookSort.main(LibraryBookSort.java:36)

----jGRASP楔2:进程退出代码为1。

4

2 回答 2

0

删除这一行

LibraryBook[] myBook = new LibraryBook[0];

并替换最后一行

myBook[0] =new LibraryBook(title,author,pages);

这样

book[0] =new LibraryBook(title,author,pages);
于 2013-07-27T05:33:22.517 回答
0

您正在使用零大小初始化数组,因此您基本上没有任何空间来存储变量(在您的情况下是一个类)。这是更正:

LibraryBook[] myBook = new LibraryBook[10];

我假设您的程序中需要的位置不超过 10 个。

编辑:我刚刚注意到您声明了两个 LibraryBook 数组,但您只使用了一个。未使用的有必要吗?

于 2013-07-27T05:26:22.753 回答