Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何添加数组_Java_Arrays - Fatal编程技术网

Java 如何添加数组

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

我需要图书管理员类来存储创建为数组的书籍。。。我只是需要帮助做这件事,并了解如何做。(我是初学者。)另外,实验的一部分是抛出一个异常和一个try/catch。我已经插入了。我希望这是对的。多谢各位

  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;