在 Java 中转义双引号

2022-08-31 17:33:02

可能的重复:
在Java中,有没有办法编写字符串文本而不必转义引号?

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

假设我希望此查询在 Java 中是有效的字符串。我是否必须将其转换为在前面带有尾部斜杠的所有双引号转义?

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

或者有没有一种更快的方法可以使整个查询立即成为有效的字符串?我以为你可以在整个字符串周围使用单引号来做到这一点,但这也不起作用。


答案 1

使用Java的替换All(字符串正则表达式,字符串替换)

例如,对引号使用替换字符,然后将该字符替换为\"

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

或将所有实例替换为\"\\\"

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

答案 2

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

一些 IDE(如 IntelliJ IDEA)在将此类字符串粘贴到字符串文本中时会自动转义(即在 java 字符串文本周围的双引号之间)

另一种选择是将字符串放入某种文本文件中,然后在运行时读取该文件。