可能重复:
In Java, is there a way to write a string literal without having to escape quotes?
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"\
或者有没有更快的方法让整个查询一次成为一个有效的字符串?我认为你可以在整个字符串两边使用单引号来实现这一点,但这也不起作用。
发布于 2011-06-08 19:24:31
在Java中,使用反斜杠转义双引号是实现此目的的唯一方法。
周围的一些IDE,比如IntelliJ IDEA,在将这样的字符串粘贴到字符串文字中(即,在java字符串文字两边的双引号之间)时,会自动进行转义
另一种选择是将字符串放入某种文本文件中,然后在运行时读取该文件
发布于 2011-06-08 19:25:26
使用Java的replaceAll(String regex, String replacement)
例如,对引号使用替换字符,然后将该字符替换为\"
String newstring = String.replaceAll("%","\"");
或者用\\\"
替换\"
的所有实例
String newstring = String.replaceAll("\"","\\\"");
发布于 2011-06-08 19:33:33
对于字符串常量,除了通过反斜杠转义之外别无选择。
也许您会发现MyBatis项目很有趣。它是JDBC上的一层薄层,您可以在其中将SQL查询外部化到XML配置文件中,而无需转义双引号。
https://stackoverflow.com/questions/6277944
复制相似问题