| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Замена esc-последовательностей в строке |
| Автор: Lotrex 28.8.2007, 11:04 |
| Пусть есть такая строка: "Location: \n c:\\Program Files\\Home\\MyPreferences" Эту строку (а так же ей подобные) я хочу хранить в файле пользовательских настроек в виде пар ключ = значение. Например, так: Comment = "Location: \n c:\\Program Files\\Home\\MyPreferences" SaveDirectory = "C:\\\"data files\"\\results\\12-08-07" LoadDirectory = "C:\\\"data files\"\\sourcef\\12-08-07" Эти настроки надо: читать-->(заменить esc-последовательности)-->(использовать/изменять)-->(вставить esc-последовательности, где нужно)-->сохранять. например, из C:\\\"data files\"\\results\\12-08-07 при чтении должно получиться нечто такое: C:\"data files"\results\12-08-07 с чтением понятно - в принципе, можно использовать метод printf класса PrintStream для замены esc-последовательностей на соответствующие символы. А как выполнить обратное преобразование - вставить в нужные места esc-последовательности для замены соответствующих спец-символов? Есть ли какие-нить классы с соответствующими методами? Ручками это я могу и сам сделать, но не хочется - задача выглядит стандартной и мучит уверенность в том, что в библиотеке классов уже это есть, просто я не могу это найти :( |
| Автор: Се ля ви 28.8.2007, 11:55 |
| На ум приходят только RegExp`ы - всяко лучше, чем ручками, но удобнее что-то наверняка есть. |
| Автор: nornad 28.8.2007, 15:35 |
| Можно попробовать использовать String.replaceAll() или, если не получиться, обычные рег.выражения. Паттерн для поиска эскейпов: "\\(.)" Паттерн для замены (если прокатит; иначе - получаем символ по группе и собираем выходную строку руками): "\1" |
| Автор: Lotrex 3.9.2007, 07:24 |
| Всем спасибо! Промаялся 2 дня, потом сделал ручками за 2 часа |