"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo reemplazar correctamente las barras invertidas simples con barras invertidas dobles en cadenas de Java?

¿Cómo reemplazar correctamente las barras invertidas simples con barras invertidas dobles en cadenas de Java?

Publicado el 2024-12-22
Navegar:299

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

Reemplazar barras invertidas simples con barras invertidas dobles en cadenas

Al intentar usar replaceAll para convertir una cadena como "\algo\" en "\ algo\", los desarrolladores suelen encontrar errores. El enfoque común de utilizar el método replaceAll("\", "\\") da como resultado la excepción "java.util.regex.PatternSyntaxException: error interno inesperado cerca del índice 1". Esto ocurre porque el carácter de barra invertida () se trata como un carácter de escape en cadenas y en expresiones regulares. Para solucionar este problema, escape la barra invertida en la expresión regular duplicándola:

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

Sin embargo, aquí no siempre es necesaria una expresión regular. Como solo queremos realizar un reemplazo carácter por carácter, String#replace() puede ser suficiente:

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

Tenga en cuenta que si la cadena está destinada a usarse en un contexto de JavaScript, podría ser más adecuado usar StringEscapeUtils#escapeEcmaScript() para cubrir una gama más amplia de caracteres.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3