Как сформировать шаблон вертикальной строки, используя целочисленный массив для подсчета пробелов? - PullRequest
0 голосов
/ 17 октября 2019

Позвольте мне объяснить. Допустим, у меня есть заданный массив целых чисел:

public static void spacing(String str)
    int[] spacing = new int[]{1, 2, 3, 2, 1};

     //Some function to find the given number in 
     //the array and coverts to the equal number of spaces

    for (int i = 0; i < str.length(); i++)
        System.out.println((the method for spacing) + str.charAt(i));

public static void main(String[] args)
    spacing("Wow!!");

Я понимаю, что он отформатирован неправильно. Я просто скопировал суть, чтобы вы могли понять, что мне интересно. Как я могу преобразовать эти целые числа в одинаковое количество пробелов? (Значение 1 будет печатать 1 пробел, 2 - 2 пробела, 3 пробела и т. Д.). Можно ли печатать символ пробела spacing[i] раз?

Отредактировано: я ограничен только импортом java.utils.Arrays java.lang Я также обновил текст, чтобы показать, как он должен создавать шаблон. Я также попробовал некоторые из предоставленного ответа, однако он по-прежнему не печатает правильное количество пробелов.

Я пытался преобразовать массив int в массив char и использовать Array.fill и, пока онзаполняет массив пробелами, это только один пробел на значение массива (вместо 2, имеющих 2 пробела, он ставит 1 пробел для каждого значения). Моя программа должна принимать символы от пользователя (что она и так делает). У меня просто проблемы с получением массива для печати правильного количества пробелов перед каждым символом.

Так выглядит ожидаемый результат, еслипользователь вводит "Wow !!":

 W
  o 
   w
  !
 !

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Вы можете создать метод и передать целое число в качестве аргумента. добавьте строку с пробелами и зафиксируйте ее на основе переданного целого числа и верните строку пробелов, подобную этой

public static void main(String args[]) {
    String str = "Wow!!";
    int[] spacing = new int[]{1, 2, 3, 2, 1};
    for (int i = 0; i < str.length(); i++) {
        System.out.println(method2(i) + str.charAt(i));
    }
}
static String method2(int n) {
    String space = "";
    for (int i = 1; i <= n; i++) {
        space = space + " ";
    }
    return space;
}

вызовите этот метод перед печатью числа или символа.

0 голосов
/ 17 октября 2019

Вы можете сделать что-то вроде этого:

public static void main(String[] args)
{
    String space = " ";
    int[] spacing = new int[]{1, 2, 3, 4, 5};
    for (int n: spacing) {
        System.out.print(String.join("", Collections.nCopies(n, space)));
        System.out.println("End of line");
    }
}

Я добавил "Конец строки" только для примера

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