[JAVA] Как я могу добавить сюда этот код массива?

#java

#java

Вопрос:

Я хотел бы распечатать, что я не могу найти книги, которых нет в массиве, хотя мне нужно только одно предложение «нет данных».

Пожалуйста, дайте мне несколько советов.

Комментарии:

1. Вам нужна boolean переменная, которая поможет отслеживать, была ли найдена книга, чтобы вы могли распечатать "no data" ее один раз после завершения цикла.

Ответ №1:

Вы можете добавить логическое значение, которое обновляется после того, как книга найдена, и как только вы закончите цикл, он напечатает «нет данных», если книга не была найдена, что-то вроде этого:

  public static void main(String[] args)
    {
        Book[] book = {new Book("java", 150, 2016), new Book("python", 100, 2019), new Book("javascript", 200, 2018)};
        Scanner in = new Scanner(System.in);
        System.out.print("insert book title >> ");
        String title = in.nextLine();
        boolean found = false;

        for (Book b : book)
        {
            if (title.equals(b.getTitle()))
            {
                System.out.println(b.toString());
                found = true;
                break;
            }
        }
       if (!found) System.out.println("no data");
    }
  

Ответ №2:

Вы могли бы сделать это также способом Java 8:

 public static void main(String[] args) {
    Book[] book = {new Book("java", 150, 2016), new Book("python", 100, 2019), new Book("javascript", 200, 2018)};
    Scanner in = new Scanner(System.in);
    System.out.print("insert book title >> ");
    String title = in.nextLine();
    Book b = Arrays.stream(book).filter(book1 -> book1.getTitle().equals(title)).findAny().orElse(null);
    if (null == b) {
        System.out.println("no data");
    } else {
        System.out.println(b);
    }
}