可以初始化一个单一的重复字符到一个特定的长度的javastring

我想创build一个具有以下签名的函数:

public String createString(int length, char ch) 

它应该返回一个指定长度的重复string。

例如,如果长度是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

为了logging,使用Java8,你可以用stream来完成这个工作:

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

但是这似乎有点矫枉过正。

这是一个优雅的纯Java单线解决scheme:

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

资料来源: https : //stackoverflow.com/a/4903603/462347

比较先进和可读,

  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; }