Estoy almacenando una consulta SQL en mi archivo strings.xml y quiero usar String.Format
para construir la cadena final en el código. La SELECT
declaració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