simples imprimir escapar dobles dentro comillas java string replace escaping backslash

java - imprimir - escapar variables php



Java reemplaza los problemas con ''(apĆ³strofo/comilla simple) y /(barra invertida) juntos (7)

Parece que tengo problemas. Tengo una cadena de consulta que tiene valores que pueden contener comillas simples. Esto romperá la cadena de consulta. Así que estaba tratando de hacer un reemplazo para cambiar '' a /' .

Aquí hay un código de muestra:

"This is'' it".replace("''", "/'");

El resultado para esto sigue siendo:

"This is'' it".

Cree que estoy haciendo un personaje de escape para la cita.

Así que probé estas dos piezas de código:

"This is'' it".replace("''", "//'"); // // for the backslash, and a '' char "This is'' it".replace("''", "///'"); // // for the backslash, and /' for the '' char

Ambos de los resultados anteriores TODA la misma salida:

"This is'' it"

Solo puedo hacer que esto escupiera una barra con:

"This is'' it".replace("''", "////'");

Lo que resulta en:

"This is//' it"

¿Alguna sugerencia? Solo quiero reemplazar un '' con /' .

No parece que debería ser tan difícil.


Ejemplo:

String teste = " ''Bauru ''"; teste = teste.replaceAll(" '' ",""); JOptionPane.showMessageDialog(null,teste);


En primer lugar, si intenta codificar apostophes para cadenas de consulta, deben estar URLEncoded, no escapándose con una barra diagonal inversa principal. Para ese uso URLEncoder.encode(String, String) (Por cierto: el segundo argumento siempre debe ser "UTF-8" ). En segundo lugar, si desea reemplazar todas las instancias de apostophe con apóstrofo de barra inclinada invertida, debe escapar de la barra invertida en su expresión de cadena con una barra invertida inicial. Me gusta esto:

"This is'' it".replace("''", "//'");

Editar:

Ahora veo que probablemente estés intentando construir dinámicamente una declaración SQL. No lo hagas de esta manera. Su código será susceptible a ataques de inyección SQL. En su lugar, use un PreparedStatement .


He usado

str.replace("''", "");

para reemplazar la comilla simple en mi cadena. esta trabajando bien para mi.


He usado un truco para manejar el carácter especial de apóstrofo. Cuando reemplace ''for'', debe colocar cuatro barras diagonales inversas antes del apóstrofo.

str.replaceAll("''","////'");


Recuerde que stringToEdit.replaceAll(String, String) devuelve la cadena de resultados. No modifica stringToEdit porque las cadenas son inmutables en Java. Para que cualquier cambio se adhiera, debes usar

stringToEdit = stringToEdit.replaceAll("''", "//'");


Si desea usarlo en JavaScript, puede usar

str.replace("SP","//SP");

Pero en Java

str.replaceAll("SP","//SP");

funcionará perfectamente

SP: personaje especial

De lo contrario, puede usar Apache''s EscapeUtil. Solucionará tu problema.


Use "This is'' it".replace("''", "//'")