对于SQL查询,我们有prepareStatement对象,该对象在编译时进行编译,我们可以在运行时将通配符(在本例中为?)设置一个值。
在Java中是否存在用于非SQL工作的等效方法,例如将StringFormat视为假设类:
StringFormat sf = new StringFormat("ams_?_xyz);
List<String> Codes = new ArrayList<>(Arrays.asList("a", "b"));
for(Code c: Codes) {
sf.set(1, c);
String str = sf.getString();
// do something
}
答案 0 :(得分:1)
您可以获得的最接近的是Console.WriteLine($"The average of {x}, {y} and {z} is: {result}");
:
String.format()
答案 1 :(得分:0)
您可以使用静态String.format
方法来实现:
String template = "aws_%s_xyz";
List<String> codes = new ArrayList<>(Arrays.asList("a", "b"));
for(String code : codes){
String str = String.format(template, code);
}
在准备好的语句中,"%s"
就像问号?
。
答案 2 :(得分:0)
您可以使用String.format
,外观为
public static String format(String format, Object... args)
这需要一个String和一个varargs,您的代码可以是:
List<String> codes = Arrays.asList("a", "b");
String someString = "ams_%s_xyz";
someString = String.format(someString, codes.toArray());
这将返回:
ams_a_xyz
^
如果有例如,它将从数组中一个接一个地替换它,并将其替换为String:
String someString = "ams_%s_xyz__%s";
^^ ^^
这将返回:
ams_a_xyz__b
^ ^
依此类推