使用扫描仪和多变量数组

时间:2013-07-27 04:43:17

标签: multidimensional-array java.util.scanner

所以,我有这个小问题。我正在提示用户输入需要存储在多变量数组中的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 wedge2:进程的退出代码为1。

2 个答案:

答案 0 :(得分:0)

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

LibraryBook[] myBook = new LibraryBook[10];

我假设您的计划中不需要超过10个地点。

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

答案 1 :(得分:0)

删除此行

LibraryBook[] myBook = new LibraryBook[0];

并替换最后一行

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

由此

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