在Java中转义双引号

可能重复:
在Java中,有没有办法写一个string文字而不必转义引号?

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);"; 

比方说,我希望这个查询是一个有效的Javastring。 我是否必须将其转换为在前面以斜线格式转义所有双引号?

 eg = "CREATE TABLE \"users"\ 

还是有更快的方法来使整个查询一次有效的string? 我以为你可以用整个string单引号来做到这一点,但这也不起作用。

用反斜杠转义双引号是在Java中执行此操作的唯一方法。

一些像IntelliJ IDEA这样的IDE会在将这样一个string粘贴到string文字(例如围绕一个Java String文字的双引号之间)时自动转义,

另一种select是将string放入某种文本文件,然后在运行时读取

使用Java的replaceAll(String regex, String replacement)

例如,使用replace字符作为引号,然后用\"replace该字符

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

或用\\\"replace\"所有实例

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

对于string常量,除了通过反斜杠进行转义之外,别无select。

也许你会发现MyBatis项目很有趣。 它是JDBC上的一个薄层,您可以在XMLconfiguration文件中外部化SQL查询,而无需使用双引号。

是的,你将不得不通过反斜杠来避免所有的双引号。