"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como substituir corretamente barras invertidas simples por barras invertidas duplas em strings Java?

Como substituir corretamente barras invertidas simples por barras invertidas duplas em strings Java?

Publicado em 2024-12-22
Navegar:187

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

Substituindo barras invertidas simples por barras invertidas duplas em strings

Ao tentar usar replaceAll para converter uma string como "\something\" em "\ alguma coisa\", os desenvolvedores frequentemente encontram erros. A abordagem comum de usar o método replaceAll("\", "\\") resulta na exceção "java.util.regex.PatternSyntaxException: Erro interno inesperado próximo ao índice 1". Isso ocorre porque o caractere de barra invertida() é tratado tanto como um caractere de escape em strings quanto em expressões regulares. Para resolver isso, escape da barra invertida na expressão regular duplicando-a:

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

No entanto, um regex nem sempre é necessário aqui. Como queremos apenas realizar uma substituição caractere por caractere, String#replace() pode ser suficiente:

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

Observe que se a string for destinada ao uso em um contexto JavaScript, pode ser mais adequado usar StringEscapeUtils#escapeEcmaScript() para cobrir uma gama mais ampla de caracteres.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3