次のシグネチャを持つ関数を作成したいと思います。
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 1行のソリューションです。
String str = new String(new char[10]).replace("\0", "1");
記録のために、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;
}