Java 用给定字符串字符 (?) 的 N 个元素填充数组

Java fill array with N elements of a given string character (?)

我想生成这个字符串:

?, ?, ?, ?, ?

我可以像这样在 PHP 中生成它:

$s = implode(", ", array_fill(0, 5, "?"));

我可以像这样在 Python 中生成它:

s = ", ".join(["?"] * 5)

我可以像这样在 Swift 中生成它:

let s = Array(repeating: "?", count: 5).joined(separator: ", ")

但是...我怎样才能用 Java 做到这一点?我最初的猜测是关于使用这样的东西:

String s = String.format("%s", String.join(", ", ...));

...这三个点暂时结束了我的幸福。如果我求助于 new StringBuilder(5) 之类的东西,那么我必须执行 .append("?") 5 次,然后 .toString() 给我一个字符串(我正在寻找一个数组或某种列表)。如果我尝试 Arrays.fill() 之类的东西,它必须在现有数组上工作(如果可能的话,我想在单行中做 )。

这样做的想法是组成一个问号参数列表来构造 SQL 语句,例如 INSERT INTO %s (%) VALUES (%s); 并在制作准备好的语句并为其提供数据之前为占位符提供适当的内容.我以 5 个问号为例,但它可以是任意数量的问号(我想在插入中指定的每个 table 列一个标记)。

你能给我提示吗?

我相信 String.join(", ", Collections.nCopies(5, "?")) 应该可以胜任。 String.join puts it together with a delimeter, and Collections.nCopies 使给定元素重复 n 次(在本例中为 5 次)的不可变 List

在 Java 中同样简单:

IntStream.range(0,5).mapToObj(x -> "?").collect(Collectors.joining(", "))