582 Stimmen

Wie entkommt man % in String.Format?

Ich speichere eine SQL-Abfrage in meiner Datei strings.xml, und ich möchte Folgendes verwenden String.Format um die endgültige Zeichenkette im Code zu erstellen. Die SELECT Anweisung verwendet ein like, etwa so:

SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%'

Um das zu formatieren, ersetze ich "etwas" durch %1$s, so dass es zu "etwas" wird:

SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\'

Ich entferne die einfachen Anführungszeichen mit einem Backslash. Ich bin jedoch nicht in der Lage, das %-Zeichen zu entschlüsseln.

Wie kann ich eine like-Anweisung in meine strings.xml-Datei einfügen?

0 Stimmen

Vergessen Sie nicht, die %s richtig zu entschlüsseln.

36 Stimmen

0 Stimmen

Sie würden in ihre eigene Datenbank einspeisen, das ist hier kein Problem ;)

1195voto

limc Punkte 38266

Zu entkommen % müssen Sie die Menge verdoppeln: %% .

28voto

Cavaleiro Punkte 405

Ergänzen Sie die oben genannte Lösung durch:

str = str.replace("%", "%%");

5voto

Toilal Punkte 3111

Dies ist eine stärkere Regex-Ersetzung, die keine %% ersetzt, die bereits in der Eingabe verdoppelt sind.

str = str.replaceAll("(?:[^%]|\\A)%(?:[^%]|\\z)", "%%");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X