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"
или есть более быстрый способ сделать весь этот запрос действительную строку сразу? Я думал, что вы можете использовать одинарные кавычки вокруг всей строки, чтобы сделайте это, но это тоже не работает.
4 ответов:
экранирование двойных кавычек с обратными косыми чертами является единственным способом сделать это в Java.
некоторые Иды вокруг, такие как IntelliJ IDEA сделайте это экранирование автоматически при вставке такой строки в строковый литерал (т. е. между двойными кавычками, окружающими строковый литерал java)
еще один вариант-поместить строку в какой-то текстовый файл, который вы затем прочитаете во время выполнения
используйте Java
replaceAll(String regex, String replacement)например, используйте символ подстановки для кавычек, а затем замените этот символ на
\"String newstring = String.replaceAll("%","\"");или заменить все экземпляры
\"С\\"String newstring = String.replaceAll("\"","\\"");
для Строковой константы у вас нет другого выбора, кроме выхода через обратную косую черту.
может быть, вы найти MyBatis интересный проект. Это тонкий слой над JDBC, где вы можете экстернализировать свои SQL-запросы в файлах конфигурации XML без необходимости экранировать двойные кавычки.
Comments