【发布时间】:2018-12-18 22:31:51
【问题描述】:
对java比较陌生,高中上过一门课,大学到目前为止只上过一节课,如果这是一个简单的问题,请见谅,但我不知道如何在网上找到答案,因为我不知道知道如何正确地为搜索提出问题。我试图修复程序输出中的间距。该程序使用一堆数组来存储狗的信息,例如它们的name、breed、age 等,并以特定格式打印出来。
以下是输出的样子:
我的输出是通过调用方法printTitle()打印出狗信息上方的标题,然后使用循环打印出每条狗的信息。这是printTitle()的代码:
void printTitle() {
System.out.print("Happy Pet Discount Shop\nToday\'s List of Available Pet Dogs For Sale"
+ "\n==============================================================================================="
+ "\nName\tbreed\tage\tin human age\tRegular price\tDisc rate\tOn sale price"
+ "\n------------------------------------------------------------------------------------------------");
}
这是我调用printTitle() 并使用循环打印狗信息的代码。注意:printEndOfList() 在循环之后打印出一些东西,这没有问题,但无论如何我都会包含它。这是循环的代码:
dogNames[0].printTitle();
for(int i = 0; i < dogNames.length; i++) {
System.out.println("\n" + dogNames[i].getName()
+ "\t" + dogBreeds[i].getBreed()
+ "\t" + dogAges[i].getAge()
+ "\t" + dogAges[i].getAIHY() //get age in human years
+ "\t" + dogRP[i].getRP() //get regular price of dog
+ "\t" + dogDp[i].get_dPct() //get discount percentage on price of dog
+ "\t" + dogRP[i].getRP()*(1 - dogDp[i].get_dPct()/100) + "\n"); //final price of the dog
}
dogNames[0].printEndOfList();
作为一个例子,我会做 2 条狗,下面是我运行它时的输出:
Happy Pet Discount Shop
Today's List of Available Pet Dogs For Sale
===============================================================================================
Name breed age in human age Regular price Disc rate On sale price
------------------------------------------------------------------------------------------------
Balto Siberian Husky 8 52 1300.0 25.0 975.0
Scoopy Great Dane 13 77 1100.0 25.0 825.0
======================== End of List ==============================
Request within for price. Any reasonable offer is considered
We accept cash & credit card no American Express
所以代码有效,但我怎样才能让每只狗的信息在标题下排列?所有的狗名都应该在Name 下排列,所有犬种都应该在breed 下排列,以此类推。我如何为所有的狗做到这一点?狗和他们的信息是由用户输入的,所以根据他们输入的名字和其他信息的长短,间距看起来会有所不同。如何始终将其排列在标题下方?
【问题讨论】: