Подтвердить что ты не робот

Можно ли инициализировать строку Java одним повторяющимся символом определенной длины

Я хотел бы создать функцию, которая имеет следующую подпись:

public String createString(int length, char ch)

Он должен возвращать строку повторяющихся символов указанной длины.
Например, если длина равна 5, а ch равно 'p', возвращаемое значение должно быть:

PPPPP

Есть ли способ сделать это без зацикливания, пока не будет требуемой длины?
И без каких-либо внешне определенных констант?

4b9b3361

Ответ 1

char[] chars = new char[len];
Arrays.fill(chars, ch);
String s = new String(chars);

Ответ 3

Вот элегантное однострочное решение на чистой Java:

String str = new String(new char[10]).replace("\0", "1");

Источник: fooobar.com/questions/15109/...

Ответ 4

Для записи с помощью Java8 вы можете сделать это с помощью потоков:

String p10times = IntStream.range(0, 10)
  .mapToObj(x -> "p")
  .collect(Collectors.joining());

Но это кажется несколько излишним.

Ответ 5

Бит более продвинутый и читаемый,

 public static String repeat(int len, String ch) {

        String s = IntStream.generate(() -> 1).limit(len).mapToObj(x -> ch).collect(Collectors.joining());
        System.out.println("s " + s);
        return s;    
    }