我有一个Java项目,我在我们的"查询模块"中工作。它负责从我们调用的字符串构建查询"片段"。 要做到这一点, 我正在使用这样的东西
myQueryOuter{
%s
}
myInnerQuery{
QUERY TEXT
}
使用String.Format会起作用,但是现在我的一个查询接受的值被编码为"%s",因此当我调用String.format方法时会抛出异常。
有没有逃过%s?这样我就可以创建整个查询,然后应用String.Format来替换值的%s。
或者有更好的方法可以做这样的事情吗?
谢谢!
编辑: 让我澄清一下:
我有以下
myQueryOuter{
%s
}
myInnerQuery{
The next blank space should be filled by a parameter: %s
}
我想制作
String output = String.Format(myOuterQuery, myInnerQuery) //this throws an exception
所以我有这个输出
myQueryOuter { myInnerQuery { 下一个空格应填入参数:%s } }
所以我可以打电话给
String realOutput = String.format(output, "ThisIsMyParameter")
所以我有
myQueryOuter { myInnerQuery { 下一个空格应该由参数填充:这是我的输出 } }
例外是:
org.springframework.web.util.NestedServletException:Request 处理失败;嵌套异常是 java.util.MissingFormatArgumentException:格式说明符'%s'
因为我有两次%s,但我希望我的输出有%s
答案 0 :(得分:3)
在格式化之前,您需要将%替换为%%
然后使用您的参数格式化%% s ..这将完成工作
希望有所帮助