Строка Java внутри строки в строку - PullRequest
2 голосов
/ 05 мая 2009

У меня есть эта строка: "\"Blah \'Blah\' Blah\"". Внутри есть еще одна строка. Как мне преобразовать это в: Blah 'Blah' Blah? (Вы видите, не экранирование строки.) Это потому, что я получаю запрос SQL Где:

WHERE blah="Blah \'Blah\' Blah"

Когда я анализирую это, я получаю строку выше (все еще внутри кавычек и экранируюсь). Как мне извлечь это, не экранируя строку? Или это гораздо более простой способ сделать это? Спасибо,
Исаак

Ответы [ 4 ]

17 голосов
/ 05 мая 2009

НЕ ДЕЛАЙТЕ ЭТОГО.

Выполните соответствующие шаги для параметризации запроса в вашей базе данных / платформе, и вам не придется ничего избегать. Вы также защитите себя от уязвимостей инъекций.

0 голосов
/ 05 мая 2009

Поместите строку в файл свойств, Java поддерживает файлы свойств XML и символ кавычки не нужно экранировать в XML.

Используйте метод loadFromXML (InputStream in) класса Properties.

Затем вы можете использовать класс MessageFormat для интерполяции значений в строку при необходимости.

0 голосов
/ 05 мая 2009

Это должно быть примерно правильно. Предполагается, что если он начинается с кавычки, он заканчивается кавычкой.

if (val.startsWith("\"") || val.startsWith("\'")) 
   val = val.substring(1, val.length-2);

Вы также можете добавить val = val.trim();.

0 голосов
/ 05 мая 2009
"\"Blah \'Blah\' Blah\"".replaceAll("\"", "")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...