需要帮助创建一个从书中打印目录的java程序

我应该编写一个java程序,它使用以下数据结构打印目录:

public class TocEntry { // Specify the needed methods private String chapter; private int page; } 

以下在我的驱动程序类中定义:

 public final int TOCSIZE = 100; TocEntry toc[] = new TocEntry[TOCSIZE]; int toc_curlen = 0; //The toc_curlen is intended to keep track of the number of chapters entered by the user and it can be used as an index into the array of TocEntry objects. 

接下来,我应该在我的TocEntry类中开发必要的代码,以读取章节名称和页码,直到输入“ ** ”。 从这里,我的输出应该如下所示:

我的故事开始………………….. 1

长大……………………… 35

征服世界…….. 103

这应该是我使用名为useTocEntry的驱动程序运行的示例

输入章节标题:Camelot

输入起始页码:1

输入章节标题:亚瑟王的法庭

输入起始页码:3

输入章节标题:桌轮骑士

输入起始页码:8

输入章节标题:幽默作家迪纳丹爵士

输入起始页码:12

输入章节标题:灵感

输入起始页码:14

输入章节标题:Eclipse

输入起始页码:23

输入章节标题:克拉伦斯的后记

输入起始页码:274

输入章节标题: **

柯莱特…………………………………… 1

亚瑟王的法庭……………………. 3

桌轮骑士………… 8

迪纳丹爵士幽默家………….. 12

灵感………………………….. 14

日食…………………………….. 23

克拉伦斯的后记……………………………….

这是我到目前为止的代码:

 import java.util.*; public class TocEntry { public TocEntry() { // Default Constructor chapter = ""; page = 0; } public TocEntry(String c, int p) { // 2 Argument Constructor chapter = c; page = p; } public String getChapter() { //getChapter() and getPage() are accessor methods return chapter; } public int getPage() { return page; } public void setChapter(String title) { ////setChapter() and setPage() are mutator methods chapter = title; } public void setPage(int numPage) { page = numPage; } private String chapter; private int page; public String toString() { // toString method to print out contents return chapter + "**" + page; } }// End of class TocEntry 

这是我的驱动程序类:

 import java.util.Scanner; public class useToEntry { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter the number of contents you would like to display: "); int TOC_NUM = input.nextInt(); final int TOCSIZE = 100; TocEntry toc[] = new TocEntry[TOCSIZE]; int toc_curlen = 0; // The toc_curlen is intended to keep track of the number // of chapters entered by the user and it can be used as an // index into the array of TocEntry objects. for(int i = 0; i < TOC_NUM; i++) { System.out.print("Enter chapter title: "); String ch = input.next(); System.out.print("Enter starting page number: "); int y = input.nextInt(); }// End of for loop } // End of main method }// End of class useTocEntry 

我需要帮助,尤其是创建一个方法,使**与章节标题和页码对齐。 任何有关我的代码的帮助或建议将不胜感激。

所以。 您需要知道所有章节的最大可能String长度。

这是通过监视输入阶段输入的文本来实现的最简单的… …

 int maxChapterLength = 0; for(int i = 0; i < TOC_NUM; i++) { System.out.print("Enter chapter title: "); String ch = input.next(); maxChapterLength = Math.max(ch.length(), maxChapterLength); System.out.print("Enter starting page number: "); int y = input.nextInt(); }// End of for loop 

然后,您可以确定章节名称和章节号之间所需的填充

就像是...

 public static String pad(String sValue, int iMinLength) { StringBuilder sb = new StringBuilder(iMinLength); sb.append(sValue); while (sb.length() < iMinLength) { sb.append("."); } return sb.toString(); } 

从那里你只需要将信息发送到屏幕......就像......

 System.out.println(pad(toc[index].getChapter(), maxChapterLength + 2) + toc[index].getPage()); 

现在,看了你的代码,你还有很多其他的问题,但是我留给你来识别。