我想创建一个具有以下签名的函数:
public String createString(int length, char ch)
它应该返回一串指定长度的重复字符 例如,如果length为5且ch为'p',则返回值应为:
PPPPP
有没有办法在没有循环的情况下执行此操作,直到达到所需的长度? 没有任何外部定义的常量?
答案 0 :(得分:88)
char[] chars = new char[len];
Arrays.fill(chars, ch);
String s = new String(chars);
答案 1 :(得分:30)
答案 2 :(得分:6)
对于记录,使用Java8,您可以使用流来执行此操作:
String p10times = IntStream.range(0, 10)
.mapToObj(x -> "p")
.collect(Collectors.joining());
但这似乎有些矫枉过正。
答案 3 :(得分:6)
这是一个优雅而纯粹的Java单行解决方案:
String str = new String(new char[10]).replace("\0", "1");
答案 4 :(得分:1)
更先进和可读,
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;
}