Поскольку String
является неизменным, и все методы, которые вы вызываете, не изменяют внутреннее значение String
s, а возвращают измененный результат, вам необходимо присвоить результат замены:Переменная.Кроме того, поскольку вы хотите заменить символы, а не шаблоны регулярных выражений, метод replace()
более чем достаточен.replaceAll()
принимает регулярное выражение, а \
также является специальным символом в регулярном выражении.
filename = filename.replace("\\", "\\\\");
Однако в Windows прямая косая черта должна работать хорошо.*
filename = filename.replace("\\", "/");
Однако # 2, вы можете захотеть сохранить его в БД, используя PreparedStatement
, который удаляет плохие и чувствительные к SQL-символам символы. Подготовьтесь здесь .
Независимо от конкретной проблемы, почему вы хотите сохранить путь к файлу в БД?Это подвержено ошибкам переносимости.Я бы предложил хранить только (уникальное) имя файла и иметь фактические файлы по одному общему пути, который настраивается в качестве параметра приложения.