Ich speichere eine SQL-Abfrage in meiner Datei strings.xml und möchte String.Format
damit die endgültige Zeichenfolge im Code erstellen. Die SELECT
Anweisung verwendet ein "Gefällt mir", etwa so:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%'
Um zu formatieren, dass ich 'etwas' durch% 1 $ s ersetze, wird es:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\'
Ich entkomme den einfachen Anführungszeichen mit dem Backslash. Ich kann mich jedoch dem% -Zeichen nicht entziehen.
Wie kann ich eine ähnliche Anweisung in meine Datei strings.xml aufnehmen?
String.format()
Sie vielleicht in Betracht ziehenMessageFormat()
.Antworten:
Um zu entkommen
%
, müssen Sie es verdoppeln :%%
.quelle
Verwenden Sie zur Ergänzung der zuvor angegebenen Lösung:
quelle
Dies ist eine stärkere Regex-Ersetzung, die %% nicht ersetzt, die bereits in der Eingabe verdoppelt wurden.
quelle
Hier ist eine Option, wenn Sie mehrere% in einer Zeichenfolge maskieren müssen, wobei einige bereits maskiert sind.
Um die Nachricht zu bereinigen, bevor sie an String.format übergeben wird, können Sie Folgendes verwenden
Dies funktioniert mit einer beliebigen Anzahl von Formatierungszeichen, sodass% durch %%, %%% durch %%%%, %%%%% durch %%%%%% usw. ersetzt wird.
Bereits maskierte Zeichen (z. B. %%, %%%% usw.) bleiben in Ruhe.
quelle