Java 如何添加数组
我需要图书管理员类来存储创建为数组的书籍。。。我只是需要帮助做这件事,并了解如何做。(我是初学者。)另外,实验的一部分是抛出一个异常和一个try/catch。我已经插入了。我希望这是对的。多谢各位Java 如何添加数组,java,arrays,Java,Arrays,我需要图书管理员类来存储创建为数组的书籍。。。我只是需要帮助做这件事,并了解如何做。(我是初学者。)另外,实验的一部分是抛出一个异常和一个try/catch。我已经插入了。我希望这是对的。多谢各位 import java.io.PrintStream; import java.util.Scanner; import book.Book; public class Librarian { private final static Scanner keyboard = new Sca
import java.io.PrintStream;
import java.util.Scanner;
import book.Book;
public class Librarian
{
private final static Scanner keyboard = new Scanner(System.in);
private final static PrintStream messagePane = new PrintStream(System.out);
private final static PrintStream output = new PrintStream(System.out);
public void provideLibrarianServices() throws java.lang.Exception
{
Book aBook = null;
boolean provideLibrarianServices = true;
do
{
output.println(
"(C)reate, \n" +
"(U)pdate, \n" +
"(D)isplay, \n" +
"(F)inish.");
output.print("What would you like to do?: ");
String response = keyboard.next();
keyboard.nextLine();
output.println();
if ( response.trim().isEmpty() || response.trim().isEmpty() )
{
output.println("You did not enter anything. Please enter a valid response.");
output.println();
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("C") )
{
if ( aBook == null )
{
aBook = createBook();
}
else
{
output.print("A book already exists. \n" +
"Creating a new one will delete the current book.\n" +
"Would you like to continue? (Y/N): ");
response = keyboard.next();
keyboard.nextLine();
output.println();
if ( response.trim().substring(0, 1).equalsIgnoreCase("Y") )
{
aBook = createBook();
if ( aBook == null )
{
output.println("Invalid information given - \n" +
" A Book could not be created.\n");
}
else
{
output.println("\nThe Book was created successfully.\n");
}
}
}
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("U") )
{
if ( aBook != null )
{
updateBook(aBook);
}
else
{
output.println("You must create a book before you can update it!");
output.println();
}
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("D") )
{
if ( aBook != null )
{
displayBook(aBook);
}
else
{
output.println("You must create a book before you can display it!");
output.println();
}
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("F") )
{
provideLibrarianServices = false;
}
else
{
output.println("You did not enter a valid response. Please try again.");
output.println();
}
}
while ( provideLibrarianServices );
}
private Book createBook() throws java.lang.Exception
{
try
{
}
catch ( Exception anException )
{
messagePane.print("Sorry, could not create a book for the following reason:"
+ anException.getMessage());
}
String response;
output.println("Please enter information about the book as requested\n");
output.print("Title: ");
String title = keyboard.nextLine();
output.println();
output.print("Author: ");
String author = keyboard.nextLine();
output.println();
output.print("Copyright Date (Four digit year, no month or day): ");
int copyrightDate = keyboard.nextInt();
output.println();
output.print("ISBN (10 or 13 characters): ");
String ISBN = keyboard.next();
keyboard.nextLine();
output.println();
output.print("Primary Topic: ");
String primaryTopic = keyboard.nextLine();
output.println();
double listPrice = 0;
output.print("Do you know the list price? (Y/N): ");
response = keyboard.next();
keyboard.nextLine();
output.println();
if ( response == null || response.trim().isEmpty() )
{
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("Y") )
{
output.print("List Price: ");
listPrice = keyboard.nextDouble();
keyboard.nextLine();
output.println();
}
double acqPrice = 0;
output.print("Do you know the aquisition price? (Y/N): ");
response = keyboard.next();
keyboard.nextLine();
output.println();
if ( response == null || response.trim().isEmpty() )
{
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("Y") )
{
output.print("Acquisition Price: ");
acqPrice = keyboard.nextDouble();
keyboard.nextLine();
output.println();
}
Book aBook = Book.create(
title, author, copyrightDate,
ISBN, primaryTopic,
listPrice, acqPrice);
output.println();
output.println(aBook.toString());
output.println();
return aBook;
}
private void displayBook( Book aBook )
{
if ( aBook != null )
{
output.println();
output.print(aBook.getTitle() + " By: " + aBook.getAuthor() + ", " +
aBook.getCopyrightDate() + ", ISBN: " + aBook.getISBN() +
"\n " + aBook.getPrimaryTopic() + "|List Price: $" + aBook.getListPrice() +
"|Acquisition Price: $" + aBook.getAcquisitionPrice() + "\n");
output.println();
}
else
{
output.println(" !!! The supplied object handle was null !!!");
}
}
private void updateBook( Book aBook )
{
String oldBook = aBook.toString();
boolean stillUpdating = true;
do
{
output.println("Current book information: \n" + aBook);
output.println();
output.print(
"(T)itle, \n" +
"(Au)thor, \n" +
"(C)opyright Date, \n" +
"(P)rimary Topic, \n" +
"(L)ist Price, \n" +
"(A)quisition Price, \n" +
"(F)inish. \n" +
"What would you like to update?: ");
String response = keyboard.next();
keyboard.nextLine();
output.println();
if ( response == null || response.trim().isEmpty() )
{
output.println("You did not enter anything. Please enter a valid response.\n");
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("T") )
{
stillUpdating = updateTitle(aBook);
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("C") )
{
stillUpdating = updateCopyrightDate(aBook);
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("P") )
{
stillUpdating = updatePrimaryTopic(aBook);
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("L") )
{
stillUpdating = updateListPrice(aBook);
}
else if ( response.trim().substring(0, 1).equalsIgnoreCase("F") )
{
stillUpdating = false;
}
else if ( response.trim().length() > 1 )
{
if ( response.trim().substring(0, 2).equalsIgnoreCase("Au") )
{
stillUpdating = updateAuthor(aBook);
}
else if ( response.trim().substring(0, 2).equalsIgnoreCase("Aq") )
{
stillUpdating = updateAcquisitionPrice(aBook);
}
else
{
output.println("Invalid Response. Please try again.");
}
}
else
{
output.println("Invalid Response. Please try again.");
}
}
while ( stillUpdating );
output.println("Original Book: \n" + oldBook);
output.println();
output.println("New Book: \n" + aBook);
output.println();
}
private boolean updateTitle( Book aBook )
{
boolean stillUpdating = true;
int aSignal;
String theSignal;
String oldTitle = aBook.getTitle();
output.println("Title: " + oldTitle);
output.print("New Title: ");
String title = keyboard.nextLine();
aSignal = aBook.setTitle(title);
theSignal = book.Book.getReturnSignal(aSignal);
output.println(theSignal + "\n" + aBook);
return stillUpdating;
}
private boolean updateCopyrightDate( Book aBook )
{
boolean stillUpdating = true;
int aSignal;
String theSignal;
int oldCopyrightDate = aBook.getCopyrightDate();
output.println("Copyright Date: " + oldCopyrightDate);
output.print("Copyright Date (Four digit year, no month or day): ");
int copyrightDate = keyboard.nextInt();
keyboard.nextLine();
aSignal = aBook.setCopyrightDate(copyrightDate);
theSignal = book.Book.getReturnSignal(aSignal);
output.println(theSignal + "\n" + aBook);
return stillUpdating;
}
private boolean updatePrimaryTopic( Book aBook )
{
boolean stillUpdating = true;
int aSignal;
String theSignal;
String oldPrimaryTopic = aBook.getPrimaryTopic();
output.println("Primary Topic: " + oldPrimaryTopic);
output.print("New Primary Topic: ");
String primaryTopic = keyboard.nextLine();
aSignal = aBook.setPrimaryTopic(primaryTopic);
theSignal = book.Book.getReturnSignal(aSignal);
output.println(theSignal + "\n" + aBook);
return stillUpdating;
}
private boolean updateListPrice( Book aBook )
{
boolean stillUpdating = true;
int aSignal;
String theSignal;
double oldListPrice = aBook.getListPrice();
output.println("List Price: " + oldListPrice);
output.print("New List Price: ");
double listPrice = keyboard.nextDouble();
keyboard.nextLine();
aSignal = aBook.setListPrice(listPrice);
theSignal = book.Book.getReturnSignal(aSignal);
output.println(theSignal + "\n" + aBook);
return stillUpdating;
}
private boolean updateAuthor( Book aBook )
{
boolean stillUpdating = true;
int aSignal;
String theSignal;
String oldAuthor = aBook.getAuthor();
output.println("Author: " + oldAuthor);
output.print("New Author: ");
String author = keyboard.nextLine();
aSignal = aBook.setAuthor(author);
theSignal = book.Book.getReturnSignal(aSignal);
output.println(theSignal + "\n" + aBook);
return stillUpdating;
}
private boolean updateAcquisitionPrice( Book aBook )
{
boolean stillUpdating = true;
int aSignal;
String theSignal;
double oldAcquisitionPrice = aBook.getAcquisitionPrice();
output.println("Acquisition Price: " + oldAcquisitionPrice);
output.print("New Acquisition Price: ");
double acqPrice = keyboard.nextDouble();
keyboard.nextLine();
aSignal = aBook.setAcquisitionPrice(acqPrice);
theSignal = book.Book.getReturnSignal(aSignal);
output.println(theSignal + "\n" + aBook);
return stillUpdating;
}
}
那里有太多的代码,我无法全部阅读,但要保存创建的书籍的记录,您需要将它们存储到列表中,在这种情况下,ArrayList可能是最好的
List<Book> books = new ArrayList<>();
它说它创建了一个默认数组大小4:
array = new Book[4];
}
您需要在Library中将数组声明为字段:
Book[] array;
那是你的方法
以创建其他3种方法的相同方式分解其他3种方法的要求。出于某种原因,任务似乎希望您使用数组而不是列表(尽管列表可能更好)。也许以后的作业会让您切换到列表。您发布的代码太多了。隔离一个特定的问题。我只需要知道如何创建一个数组。。。实例化数组(无参数方法,默认数组大小为4;无返回类型),将书本对象插入数组(书本类型的单个参数;无返回类型),并在数组中定位书本(字符串类型的单个参数;书本的返回类型)。。。我只是不知道从哪里开始,怎么开始。这有用吗?好的,非常感谢。另外,我忘了添加数组需要是无参数的方法;默认数组大小为4;没有返回类型。。。你要怎么开始呢?对不起,你刚才说的毫无意义……我忘了早些时候提过,也不明白自己的意思。。。我只需要知道如何创建一个数组。。。实例化数组(无参数方法,默认数组大小为4;无返回类型),将书本对象插入数组(书本类型的单个参数;无返回类型),并在数组中定位书本(字符串类型的单个参数;书本的返回类型)。。。我只是不知道从哪里开始,怎么开始。这有用吗?我不会帮你做作业的。听起来好像你被要求创建方法来在你的对象中创建一个数组,用数组做一些事情,找到一些东西,返回一些东西。哦,好的,非常感谢!我不想让你做我的作业,但请帮我弄清楚我到底需要做什么,因为我的教授还没有回答我。还有一个问题,对于我来说,要创建这个数组方法,我需要删除或重建我已经拥有的方法吗?我的代码是循环中的一个菜单
Book[] array;