首页 > 解决方案 > JAVA,用String.format对同一个变量进行n次插值

问题描述

我想使用 String.format 方法插入相同的变量 n 次。

例如与

String value = "hi";
String interpolated = String.format(" %s %s %s %s ", value);

我预计

System.out.println(interpolated)
// " hi hi hi hi "

标签: javastringformatinterpolationstring-interpolation

解决方案


你可以这样做(虽然在发生方面被编码):

String value = "hi";

String interpolated = String.format(" %s %s %s %s ", IntStream.range(0, 4)
                                                              .mapToObj(i -> value)
                                                              .toArray());

您可以通过这种方式对其进行可变化:

 public String repeat(String string, int nbRepeat){
    return String.format(" " + IntStream.range(0, nbRepeat)
                                         .mapToObj(i -> "%s")
                                         .collect(Collectors.joining(" ")),
                          IntStream.range(0, nbRepeat)
                                   .mapToObj(
                                           i -> string)
                                   .toArray());
}

并使用它:

repeat("hi", 4);
repeat("ho", 6);

推荐阅读