How to escape % in String.Format?
180,492
Solution 1
To escape %
, you will need to double it up: %%
.
Solution 2
To complement the previous stated solution, use:
str = str.replace("%", "%%");
Solution 3
This is a stronger regex replace that won't replace %% that are already doubled in the input.
str = str.replaceAll("(?:[^%]|\\A)%(?:[^%]|\\z)", "%%");
Author by
Matthew
Updated on July 28, 2022Comments
-
Matthew almost 2 years
I am storing a SQL query in my strings.xml file and I want to use
String.Format
to build the final string in code. TheSELECT
statement uses a like, something like this:SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%'
In order to format that I replace 'something' with %1$s so it becomes:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\'
I escape the single quotes with the backslash. However I am not able to escape the % sign.
How can I include a like statement in my strings.xml file?