Как добавить интервал в вывод консоли - PullRequest
0 голосов
/ 19 декабря 2018

Относительно новичок в Java, учился в старших классах и до сих пор учился только в одном колледже, так что простите, если это простой вопрос, но я не знал, как найти ответ в Интернете, так как я не знаюзнать, как правильно сформулировать вопрос для поиска.Я пытаюсь исправить интервал в выводе моей программы.Программа использует несколько массивов для хранения информации о собаках, таких как name, breed, age и т. Д., И распечатывает ее в определенном формате.

Вот как должен выводиться результат.выглядеть так: 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 и так далее.Как мне сделать это для всех собак?Собаки и их информация вводятся пользователем, поэтому в зависимости от того, насколько длинными или короткими являются имена и другая информация, которую они вводят, интервал выглядит по-разному.Как мне последовательно выстроить его под заголовком?

1 Ответ

0 голосов
/ 19 декабря 2018

Посмотрите на использование 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 пробелов.

...