【发布时间】:2014-07-25 17:50:10
【问题描述】:
我有一个 Java 项目,正在我们的“查询模块”中工作。它负责从我们称为“sn-ps”的字符串构建查询。 要做到这一点, 我正在使用这样的东西
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{ 我的内部查询{ 下一个空格应由参数填充:%s } }
所以我可以打电话
String realOutput = String.format(output, "ThisIsMyParameter")
所以我有
myQueryOuter{ 我的内部查询{ 下一个空格应该由一个参数填充:这是我的输出 } }
例外是:
org.springframework.web.util.NestedServletException: 请求 处理失败;嵌套异常是 java.util.MissingFormatArgumentException:格式说明符“%s”
因为我有两次 %s,但我希望我的输出有 %s
【问题讨论】:
-
这不清楚。抛出异常的代码是什么?
-
哎呀,我的眼睛。我虽然一个 %s 已经够糟糕了,但是嵌套格式字符串....
标签: java