Подтвердить что ты не робот

Escape двойные кавычки в Java

Возможный дубликат:
В 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"\

Или существует ли более быстрый способ сделать весь этот запрос допустимой строкой сразу? Я думал, что вы можете использовать одинарные кавычки вокруг всей строки, чтобы это сделать, но это тоже не работает.

4b9b3361

Ответ 1

Выход из двойных кавычек с обратными косыми чертами - единственный способ сделать это в Java.

Некоторые IDE, такие как IntelliJ IDEA, автоматически выполняются при вставке такой строки в строковый литерал (т.е. между двойными кавычками, окружающими строковый литерал java)

Еще один вариант - поместить String в какой-то текстовый файл, который вы читали бы во время выполнения

Ответ 2

Использовать Java replaceAll(String regex, String replacement)

Например, используйте замену char для кавычек, а затем замените char на \"

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

или замените все экземпляры \" на \\\"

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

Ответ 3

Для константы String у вас нет другого выбора, кроме экранирования через обратную косую черту.

Возможно, вам интересен проект MyBatis. Это тонкий слой поверх JDBC, где вы можете экстеризировать ваши SQL-запросы в файлах конфигурации XML без необходимости избегать двойных кавычек.

Ответ 4

Да, вам придется избегать всех двойных кавычек с помощью обратной косой черты.