Как отформатировать вывод массива в 5 блоков пространства и другую половину в следующей строке?

#java

#java

Вопрос:

итак, в основном мне нужно напечатать 12 заданных чисел в моем массиве, если входные данные равны
1, и случайные числа, если входные данные равны 2. и формат должен быть таким, как показано ниже: 8 в одной строке с интервалом в 5 блоков и другие 4 внизу.

1 2 3 4 5 6 7 8

9 10 11 12

 all the 12 numbers will be in the same array but the output must be like 
this.
  
 and if the input is 2, the array must output 12 random numbers



 all i know and read in the book is something like this to print nomally

  System.out.printf(Arrays.toString(array));
  if (i == 1){
  System.out.printf("%5s", Arrays.toString(array))   ;
 }

     int i = input.nextInt();
    int[] array = {1,2,3,4,5,6,7,8,9,10,11,12};
  System.out.printf(Arrays.toString(array));
  if (i == 1){
  System.out.printf("%5s", Arrays.toString(array))   ;
 }

  I wanted the print to be >1 2 3 4 5 6 7 8 /n 9 10 11 12 
  but the output is within sets {}
  

Комментарии:

1. Выполните итерацию по элементам, распечатайте их с помощью System.out.print , а затем через каждые x символов выведите новую строку

2. что-то вроде этого? System.out.printf(«], ], ], ], ] n ]», 1,2,3,4,5,6);

3. Используйте for цикл

Ответ №1:

Вы можете выполнить основную печать без if этого способа:

 public class TTest1 {

    public static void main(String... args) {
        int[] array = {1,2,3,4,5,6,7,8,9,10,11,12};
        for (int i = 0 ; i < array.length ; i  )
            System.out.printf("]%s", array[i], (i % 8 == 7)? "nn" : "");
        System.out.println();
    }
}
  

Результат:

 1    2    3    4    5    6    7    8

9   10   11   12
  

Ответ №2:

Вы можете использовать сканер для получения входных данных от пользователя:

 Scanner input = new Scanner(System.in);
int i = input.nextInt();

if(i == 1) {
    int[] array = {1,2,3,4,5,6,7,8,9,10,11,12};
    for(int ind = 0; ind < array.length; ind  ) {
        System.out.printf("] ", array[ind]);
        if(ind == 7) {
            System.out.println(); //to have 8 numbers on the first line
        }
     }
}
else {
     //write code for random number generation here
    }
  

Комментарии:

1. не могли бы вы объяснить, как вы это сделали? это цикл для пробела? Я вижу, как вы использовали>if(ind == 7) {println)();} .

2. Цикл состоит в том, чтобы просто печатать каждое значение в массиве. Вы могли бы сделать все это в одной строке с помощью длинного оператора печати, но это выглядит беспорядочно. Цикл перебирает каждое значение в массиве и печатает его, в то время как интервал обрабатывается с помощью %5 в инструкции print .