我想生成此字符串:
?, ?, ?, ?, ?
我可以这样在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()
之类的东西,它必须在现有数组上工作(并且我想以单行如果可能来做)。
这样做的目的是组成一个问号参数列表,以构造像INSERT INTO %s (%) VALUES (%s);
之类的SQL语句,并在准备一条准备好的语句并将其馈入数据之前为占位符提供适当的内容。我以5个问号为例,但它可以是任意数量的问号(我要在插入中指定的每个表列一个问号)。
你能给我一个提示吗?
我相信String.join(", ", Collections.nCopies(5, "?"))
应该做的。 String.join
将其与一个定界符放在一起,String.join
使给定元素重复n次(在这种情况下为5),成为不可变的Collections.nCopies
。
在Java中同样简单: