java - 创建一个输出目录的 Java 程序

标签 java loops

<分区>

Possible Duplicate:
Need help creating a java program that prints a table of contents from a book

我应该创建一个程序来输出目录。让我给你们介绍一下我的任务背景。用户应该循环输入章节标题和起始页码,直到用户为章节标题输入 4 个星号。用户输入 4 个星号后,我应该打印出输出,例如

亚瑟王宫廷......................................3

圆 table 骑士......................8

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

我认为我的大部分编码都正确。在我的测试程序中,我创建了一个 while 循环,允许用户输入章节标题和起始页码。当用户为章节标题输入 4 个星号时,此循环将终止。但是,我被卡住的地方是在我的 while 循环之后,在用户输入星号后生成输出。我没有显示目录,而是得到了一个输出。我尝试了一个 for 循环来打印出标题、点和页码,但它只显示星号。我认为循环是错误的。

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

// My Table of Contents class
public class TocEntry
{

public TocEntry(String title, int page) // 2 Argument Constructor
{
           chapterTitle = title;
           startPage = page;
}


public String toString() // toString method to print out chapter title,
                         // given dots, and start page
{
    String temp = "" + startPage;
    int numDots = 60 - (temp.length()+ chapterTitle.length());

    String toc_out = chapterTitle;
    for(int i = 0; i < numDots; i++)
       toc_out=toc_out +".";
       toc_out= toc_out + startPage;
    return toc_out;
}


private String chapterTitle; 
private int startPage;


    }// End of class TocEntry

// My Test program
import java.util.Scanner;
public class useToEntry {

public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);

    final int TOCSIZE = 100;// Max size of TOC
    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

    System.out.print("Enter chapter title: ");
    String chapterTitle = input.next();

    while(!"****".equals(chapterTitle))
    {
       System.out.print("Enter starting page number: ");
       int page = input.nextInt();

       System.out.print("Enter chapter title: ");
       chapterTitle= input.next();

       toc [toc_curlen] = new TocEntry(chapterTitle,page);
       toc_curlen = toc_curlen++;

    }// End of while loop

       for (int line = 0; line < toc_curlen; line++)
       {
         System.out.println(chapterTitle.toString());
       }// End of for loop
  }// End of main method

}// End of class useToEntry

任何人都可以帮助我更正我的循环以生成我的输出。我愿意接受建议。

谢谢!

最佳答案

一些建议:

线

toc_curlen = toc_curlen++;

将导致 toc_curlen 永远不会增加。您可以单独使用增量运算符:

toc_curlen++;

第一次使用

String chapterTitle = input.next();

你永远不会将它分配给你的 TocEntry 数组 toc,所以这一章永远不会显示。

您在显示循环中重复打印变量 chapterTitle - 您应该在此处打印您的 TocEntry:

for (int line = 0; line < toc_curlen; line++) {
   System.out.println(toc[line].toString());
}

关于java - 创建一个输出目录的 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12539416/

相关文章:

java - 如何知道 Looper 是否正在运行?

arrays - 如何在 MATLAB 中的 for 循环内创建比率数组?

java - 通过单击 PopUpWindow 上的按钮打开 Activity (Android Studio)

java - 仅当所有 Junit 测试都通过时才运行 Java 项目

javascript - 从 URL 创建对象树

c++ - 打印没有嵌套条件的三角形

C# - 将字典键/值插入新元组

java - 从集合中删除长度为 1 的字符串,不包括某些值

java - Spring 安全: Access is Denied Exception

java - "Why does my lottery game ignores zeros?"