java - Java Objects Array:如何仅打印对象的第一个元素?
问题描述
我正在尝试创建一个程序,该程序将书名、页数和出版年份作为用户输入。当用户没有在名称字段中输入任何内容时,程序应该询问用户将打印什么:只有书籍的名称或用户提供的所有信息。这是我的主要代码:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int index = 0;
Scanner reader = new Scanner(System.in);
ArrayList<Books> book = new ArrayList<>();
while (true) {
System.out.println("Name of the book: ");
String name = reader.nextLine();
if (name.isEmpty()) {
break;
}
System.out.println("Number of pages: ");
int pages = Integer.parseInt(reader.nextLine());
System.out.println("Year: ");
int year = Integer.parseInt(reader.nextLine());
book.add(new Books(name,pages,year));
}
while (true) {
System.out.println("What do you want to print?");
String whatwillbeprinted = reader.nextLine();
if (whatwillbeprinted.equals("everything")) {
while(index < book.size()) {
System.out.println(book.get(index));
index++;
}
}
if (whatwillbeprinted.equals("names")) {
while(index < book.size()) {
// print only names of the books
}
}
}
}
}
这是我的名为 Books 的 Java 类:
public class Books {
private String name;
private int pages;
private int year;
public Books(String name, int pages, int year) {
this.name = name;
this.pages = pages;
this.year = year;
}
@Override
public String toString() {
return this.name + ", " + this.pages + ", " + this.year;
}
}
在最后一个 while 语句之前,一切都正常运行。如何仅打印对象的第一个元素(书名)?提前致谢。
解决方案
public class Books {
private String name;
private int pages;
private int year;
public Books(String name, int pages, int year) {
this.name = name;
this.pages = pages;`
this.year = year;
}
@Override
public String toString() {
return this.name + ", " + this.pages + ", " + this.year;
}
public String getName(){
return name;
}
}
然后调用 book.getName() 可以得到书名,现在只需要写一个循环显示每本书的名字
PS 关于类名称的混淆:名称 Books 不正确,因为该类仅存储有关一本书的信息。书名 - 正确的书名
书名代码:
for(int i = 0;i<book.lenght;i++)
{
System.out.println("Name of book: " + book[i].getName());
}
推荐阅读
- unity3d - Unity 2D对象面方向其移动
- python - 我需要使用 python 和 pandas 将 CSV 文件转换为 Json 文件
- anychart - 到达系列开始/结束的事件?
- javascript - 如何将对象数组中的某些属性合并到另一个数组中?
- ios - 到达 UICollectionView 的末尾时无法开始分页。UIscrollView 内的水平 UICollectionView 位于 UIPageViewController 内
- ubuntu-16.04 - openvpn ubuntu 16.04 vpn manager不断重新连接密码过期
- machine-learning - 将 k-means 聚类结果与层次聚类进行比较
- python - 尝试使用 Google Cloud Scheduler 运行 Python 可执行文件
- android - 执行自定义 DialogPreference 时遇到问题
- php - 如何附加用逗号分隔的id?