una simples secuencia reemplazar que escape dobles concatenar comillas colocar agregar java escaping

simples - reemplazar comillas en string java



Escape de comillas dobles en Java (4)

Posible duplicado:
En Java, ¿hay alguna forma de escribir un literal de cadena sin tener que escapar de las comillas?

private static final String CREATE_TABLE_EXHIBITORS = "CREATE TABLE "users" ("_id" text PRIMARY KEY ,"name" text,"body" text,"image" text,"stand_id" text,"begin" long,"end" long,"changedate" long,"website" text,"facebook" text,"myspace" text,"twitter" text,"festivallink" text,"favorite" integer);";

Digamos que quiero que esta consulta sea una cadena válida en Java. ¿Tengo que convertirlo para escapar de todas las comillas dobles con una barra al frente?

e.g. = "CREATE TABLE /"users"/

¿O hay una manera más rápida de hacer que toda esta consulta sea una cadena válida a la vez? Pensé que podrías usar comillas simples alrededor de toda la cadena para hacer eso, pero eso tampoco funciona.


Escapar las comillas dobles con barras diagonales inversas es la única forma de hacerlo en Java.

Algunos IDEs alrededor como IntelliJ IDEA lo hacen escapando automáticamente al pegar un String en un literal String (es decir, entre las comillas dobles que rodean un literal java String)

Otra opción sería poner el String en algún tipo de archivo de texto que luego leería en tiempo de ejecución


Para una constante de cadena, no tiene otra opción que escapar por barra invertida.

Quizás encuentres interesante el proyecto MyBatis . Es una capa delgada sobre JDBC donde puede externalizar sus consultas SQL en archivos de configuración XML sin la necesidad de evitar comillas dobles.


Sí, tendrá que evitar todas las comillas dobles con una barra diagonal inversa.


Utilice Java''s replaceAll(String regex, String replacement)

Por ejemplo, use un carácter de sustitución para las comillas y luego reemplace ese carácter con /"

String newstring = String.replaceAll("%","/"");

o reemplace todas las instancias de /" con ///"

String newstring = String.replaceAll("/"","///"");