Ответ 1
Нет. Экранирование/экстернализация строки - ваш единственный выбор.
Быстрый вопрос. Существует ли эквивалент @применительно к строкам в Java:
Например, я могу сделать @"c:\afolder\afile"
в С# и игнорировать escape-символы при обработке вместо того, чтобы делать "c:\\afolder\\aFile"
. Есть ли эквивалент Java?
hmmm: stackoverflow убегает от меня.. lol. Второй пример должен выглядеть следующим образом:
с: (двойной обратный слэш) afolder (двойной обратный слэш) AFile
Нет. Экранирование/экстернализация строки - ваш единственный выбор.
Нет, у Java нет verbatim string litals.
Если вам нужен Java-подобный (и Java-VM-based) язык, который, однако, вы можете посмотреть Groovy который имеет различные формы строкового литерала.
Как сказал Кент и Джон, их нет.
Я отвечаю только на то, чтобы указать, что даже если бы в вашем конкретном случае это было бы плохой идеей в общем случае, предполагая более чем одну программу.
Java-программы работают на разных платформах, нежели Windows, а на других платформах разные разграничители файлов. Поэтому вместо обращения к экранированным обратным слэшам правильный способ обработки вашего конкретного примера - получить свойство разделителя файлов:
String sep = System.getProperty("file.separator");
String filename = ROOTDIR + sep + "folder" + sep + "afile";
Если вы отдельно создали ROOTDIR на основе некоторой политики - не только платформу, но и хотите ли вы, чтобы ваш "файл" был относительно фактического корня файловой системы или относился к домашнему каталогу пользователя.
Но определенно, использование свойства разделителя файлов делает ваши программы более широко используемыми. Это больше работает? Да. Как говорит Ванда Сайкс: "Но это того стоит".