2015-08-31 3 views
0

Я пытаюсь напечатать это:Печать Дни недели в Java

Sun Mon Tue Wed Thur Fri Sat 
    4 3 8 5  4 4 8 

С вводом пользователя в течение нескольких часов, что они работали каждый день на той же линии так, то общее количество отработанных часов может быть но я даже не уверен, что это возможно. Вот отрывок из моего текущего кода:

System.out.println("\t"+"\t"+"\t"+"\t"+"\t" + "Sun" + "\t" + "Mon" + "\t" + "Tue" + "\t" + "Wed" + "\t" + "Thur" + "\t" + "Fri" + "\t" + "Sat"); 
     for (int j = 0; j < hoursWorkedPerDay.length; j++) { 
      System.out.print("Enter hours worked for Employee " + (j+1) + ":"+ "\t" + " " + " "); 

      for (int k = 0; k < hoursWorkedPerDay[0].length; k++) { 
       hoursWorkedPerDay[j][k] = scan.nextInt(); 
      } 
     } // End of for loop 

И мой выходной ток:

Enter the number of Employee: 2 
Enter the name of the employee 1: jeff 
Enter the name of the employee 2: lita 
            Sun Mon Tue Wed Thur Fri Sat 
Enter hours worked for Employee 1: 4 
6 
7 
5 
8 
7 
9 
Enter hours worked for Employee 2: 3 
4 
...... 

Мой вопрос, возможно ли это или я должен просто напечатать каждый вертикально? Благодаря!

+1

сначала получить отработанные, а затем распечатать таблицу. В настоящее время ваша таблица прерывается вводом. –

+1

Боковое примечание. Вы должны изучить это, чтобы избавиться от всех этих вкладок и всего: https://docs.oracle.com/javase/tutorial/java/data/numberformat.html – Zarwan

+0

Да, это возможно! – Andreas

ответ

1

Вы должны распечатать дни недели, прежде чем получить значение. Например:

//Code before 
String[] weekDays = {"Sun","Mon","Tue", "Wed", "Thur", "Fri", "Sat"}; 
    for (int k = 0; k < hoursWorkedPerDay[0].length; k++) { 
     System.out.print(weekDays[k] + ": "); 
     hoursWorkedPerDay[j][k] = scan.nextInt(); 
     System.out.println(); //New line 
    } 

} 
1

Если я понимаю ваш вопрос, это «как напечатать массив чисел в одной строке»? Если это так, есть два основных способа:

  1. Использование print для каждого номера (с символом табуляции между), а затем println в конец строки.

  2. Соедините все числа в одну строку, а затем используйте println для вывода всей строки.

Вот простой Java 8 идиом для печати всех часов в одном заявлении, путем присоединения их в строку с разделителями:

IntStream.range(0, employeeCount) 
    .mapToObj(emp -> Arrays.stream(hoursWorked[emp]).collect(Collectors.joining("\t"))) 
    .forEach(System.out::println); 
Смежные вопросы