Ответ 1
char[] chars = new char[len];
Arrays.fill(chars, ch);
String s = new String(chars);
Я хотел бы создать функцию, которая имеет следующую подпись:
public String createString(int length, char ch)
Он должен возвращать строку повторяющихся символов указанной длины.
Например, если длина равна 5, а ch равно 'p', возвращаемое значение должно быть:
PPPPP
Есть ли способ сделать это без зацикливания, пока не будет требуемой длины?
И без каких-либо внешне определенных констант?
char[] chars = new char[len];
Arrays.fill(chars, ch);
String s = new String(chars);
StringUtils.repeat(str, count)
от apache commons-lang
Вот элегантное однострочное решение на чистой Java:
String str = new String(new char[10]).replace("\0", "1");
Источник: fooobar.com/questions/15109/...
Для записи с помощью Java8 вы можете сделать это с помощью потоков:
String p10times = IntStream.range(0, 10)
.mapToObj(x -> "p")
.collect(Collectors.joining());
Но это кажется несколько излишним.
Бит более продвинутый и читаемый,
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;
}