gpt4 book ai didi

java - 如何为控制台输出添加间距

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:12 25 4
gpt4 key购买 nike

对java相对较新,在高中上过一门课,到目前为止只在大学上过一门课,所以如果这是一个简单的问题,请原谅我,但我不知道如何在网上找到答案,因为我不知道如何正确地表达问题以供搜索。我试图修复程序输出中的间距。该程序使用一堆数组来存储狗的信息,例如它们的名称品种年龄等,并以特定格式将其全部打印出来。

输出应如下所示: output

我的输出是通过调用方法 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 下排列,依此类推。我该如何为所有狗做到这一点?狗及其信息是由用户输入的,因此根据他们输入的名称和其他信息的长短,间距看起来会有所不同。如何始终将其排列在标题下?

最佳答案

查看使用 System.out.printf

http://www.javawithus.com/tutorial/displaying-text-using-printf-method

您首先必须计算出每列的宽度,然后您可以像这样打印出每一行:

 System.out.printf("%-10s %-10s %-10s\n", dogNames[i].getName(),  dogBreeds[i].getBreed(), dogAges[i].getAge());

在此示例中,每列有 10 个空格。

关于java - 如何为控制台输出添加间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53842078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com