Estou armazenando uma consulta SQL no meu arquivo strings.xml e quero usar String.Format
para criar a sequência final no código. A SELECT
declaração usa um like, algo como isto:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%'
Para formatar, substituo 'algo' por% 1 $ s para que se torne:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\'
Eu escapei das aspas simples com a barra invertida. No entanto, não consigo escapar do sinal de%.
Como posso incluir uma instrução like no meu arquivo strings.xml?
String.format()
você pode considerar usarMessageFormat()
.Respostas:
Para escapar
%
, você precisará dobrar-lo:%%
.fonte
Para complementar a solução indicada anteriormente, use:
fonte
Esta é uma substituição de regex mais forte que não substituirá %% que já foram duplicados na entrada.
fonte
Aqui está uma opção se você precisar escapar de vários% 's em uma string com alguns já escapados.
Para limpar a mensagem antes de passá-la para String.format, você pode usar o seguinte
Isso funciona com qualquer número de caracteres de formatação, substituindo% por %%, %%% por %%%%, %%%%%% %%%%%%, etc.
Ele deixará qualquer caractere que já tenha escapado (por exemplo, %%, %%%% etc.)
fonte