„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie ersetzt man einzelne Backslashes in Java-Strings ordnungsgemäß durch doppelte Backslashes?

Wie ersetzt man einzelne Backslashes in Java-Strings ordnungsgemäß durch doppelte Backslashes?

Veröffentlicht am 22.12.2024
Durchsuche:307

How to Properly Replace Single Backslashes with Double Backslashes in Java Strings?

Ersetzen einzelner Backslashes durch doppelte Backslashes in Strings

Beim Versuch, replaceAll zu verwenden, um einen String wie „\something\“ in „\“ zu konvertieren etwas\“, stoßen Entwickler häufig auf Fehler. Der übliche Ansatz der Verwendung der Methode „replaceAll(“\“, „\\“) führt zur Ausnahme „java.util.regex.PatternSyntaxException: Unexpected internal error near index 1“. Dies liegt daran, dass das Backslash()-Zeichen sowohl in Zeichenfolgen als auch in regulären Ausdrücken als Escape-Zeichen behandelt wird. Um dieses Problem zu beheben, maskieren Sie den Backslash im regulären Ausdruck, indem Sie ihn verdoppeln:

string.replaceAll("\\\\", "\\\\\\\\");

Allerdings ist hier nicht immer ein regulärer Ausdruck erforderlich. Da wir nur eine zeichenweise Ersetzung durchführen wollen, kann String#replace() ausreichend sein:

string.replace("\\", "\\\\");

Beachten Sie, dass es möglicherweise besser geeignet ist, StringEscapeUtils#escapeEcmaScript() zu verwenden, um einen größeren Zeichenbereich abzudecken, wenn die Zeichenfolge für die Verwendung in einem JavaScript-Kontext vorgesehen ist.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3