Как напечатать отсортированный список столбец за столбцом вместо строки - PullRequest
0 голосов
/ 04 апреля 2019

Попытка напечатать массив строк, которые уже отсортированы.Так, например, если у меня есть массив String с буквами от A до L, чтобы настроить цикл для получения вывода как такового.Кажется, я не могу понять, как увеличить переменную цикла, чтобы получить правильное число для распечатки массива в следующем порядке.

Желаемый результат:

   A D G J
   B E H K 
   C F I L


String[] str = { "A", "B","C" ,"D" ,"E" ,"F" , "G" , "H" , "I" , "J" , "K", "L" };

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Это пример кода для печати в требуемом формате.Он выполняет два цикла - внешний цикл печатает строки, а внутренний цикл печатает столбцы для каждой строки.

public class PrintArray {

    public static void main(String[] args) {
        String[] str = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"};
        printArray(str, 3);
    }

    private static void printArray(String[] str, int numRows) {
        for (int i = 0; i < numRows; i++) {
            for (int j = 0; j < str.length; j += numRows) {
                System.out.print(str[j + i] + " ");
            }
            System.out.println();
        }
    }
}

Вывод:

A D G J 
B E H K 
C F I L
0 голосов
/ 04 апреля 2019

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

Вы должны быть в состоянии рассчитать количество строк и столбцов в вашей таблице. Как только вы узнаете эти значения, вы можете сделать следующее:

  1. Распечатайте элемент по индексу 0 в вашем списке.
  2. Пропустить количество элементов, равное количеству строк, которое вы хотите (в вашем примере это 3).
  3. Распечатать следующий элемент (в данном случае D).
  4. Повторяйте шаги 1-3, пока не достигнете конца массива.
  5. Распечатайте новую строку и повторите описанный выше процесс, за исключением того, что теперь вы увеличите свой начальный индекс на 1 (например, после начала первой итерации с индекса 1, начиная с 2 после второй итерации и т. Д. ).
  6. Как только ваш начальный индекс превысит количество строк, остановитесь.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...