我存储一个SQL查询在我的strings.xml文件,我想使用字符串。格式以在代码中构建最终字符串。SELECT语句使用like,就像这样:

SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%'

为了格式化,我用%1$s替换'something',所以它变成:

SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\'

我用反斜杠转义单引号。然而,我无法转义%符号。

如何在我的strings.xml文件中包含一个喜欢的语句?


当前回答

要补充前面提到的解决方案,请使用:

str = str.replace("%", "%%");

其他回答

这是一个更强的正则表达式替换,不会替换输入中已经翻倍的%%。

str = str.replaceAll("(?:[^%]|\\A)%(?:[^%]|\\z)", "%%");

要转义%,需要将其加倍:%%。

要补充前面提到的解决方案,请使用:

str = str.replace("%", "%%");