Estoy almacenando una consulta SQL en mi archivo strings.xml y quiero usar String.Formatpara construir la cadena final en el código. La SELECTdeclaración usa un me gusta, algo como esto:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%'
Para formatear eso, reemplazo 'algo' con% 1 $ s para que se convierta en:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\'
Me escapo de las comillas simples con la barra diagonal inversa. Sin embargo, no puedo escapar del signo%.
¿Cómo puedo incluir una declaración similar en mi archivo strings.xml?

String.format()que podrías considerar usar en suMessageFormat()lugar.Respuestas:
Para escapar
%, tendrá que doblar hacia arriba:%%.fuente
Para complementar la solución establecida anteriormente, use:
fuente
Este es un reemplazo de expresiones regulares más fuerte que no reemplazará %% que ya están duplicados en la entrada.
fuente
Aquí hay una opción si necesita escapar de varios% 's en una cadena con algunos ya escapados.
Para desinfectar el mensaje antes de pasarlo a String.format, puede usar lo siguiente
Esto funciona con cualquier número de caracteres de formato, por lo que reemplazará% con %%, %%% con %%%%, %%%%% con %%%%%% etc.
Dejará solos los caracteres ya escapados (por ejemplo, %%, %%%% etc.)
fuente