выровнять вывод с printf - PullRequest
0 голосов
/ 21 ноября 2018

По сути, мне нужно, чтобы дни соответствовали значениям рядом.Вот так:

Monday  273.44

Tuesday 568.4

Вместо

Monday
Tuesday
Wednesday     
273.44
568.4
563.6

for (int p=0; p < days.length; p++)
{
    System.out.printf(days[p]);
}

for (int s=0; s < sales.length; s++)
{
    System.out.print( sales[s]);
}

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Так как вы хотите, чтобы ваш вывод был выровнен по левому краю, попробуйте это

    for(int index = 0; index < days.length; index++)
    {
        System.out.printf("%-9s" + " " + "%.2f%n",days[index], sales[index]);
    }

Вам нужен знак минус для выровненного по левому краю, за которым следует число, обозначающее ширину.В этом случае мы будем использовать 9, потому что среда - это день с наибольшим количеством символов среди 7 возможных дней недели.% S - это спецификатор строки,% .2f - это спецификатор с плавающей запятой с двумя десятичными знаками.и% n - это спецификатор для печати новой строки.Есть много онлайн-ресурсов, которые показывают вам, как печатать форматированный вывод в java, используя метод printf, и я рекомендую вам сделать это.

0 голосов
/ 21 ноября 2018

%-10s заставит дни занимать ровно 10 пробелов, даже если они будут короче.

for (int p = 0; p < days.length; p++) {
    System.out.printf("%-10s%s%n", days[p], sales[p]);
}

Вывод

Monday    273.44
Tuesday   568.4
...