Java-эквивалент строчных строк С# с @

Быстрый вопрос. Существует ли эквивалент @применительно к строкам в Java:

Например, я могу сделать @"c:\afolder\afile" в С# и игнорировать escape-символы при обработке вместо того, чтобы делать "c:\\afolder\\aFile". Есть ли эквивалент Java?

hmmm: stackoverflow убегает от меня.. lol. Второй пример должен выглядеть следующим образом:

с: (двойной обратный слэш) afolder (двойной обратный слэш) AFile

Ответ 1

Нет. Экранирование/экстернализация строки - ваш единственный выбор.

Ответ 3

Как сказал Кент и Джон, их нет.

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

Java-программы работают на разных платформах, нежели Windows, а на других платформах разные разграничители файлов. Поэтому вместо обращения к экранированным обратным слэшам правильный способ обработки вашего конкретного примера - получить свойство разделителя файлов:


    String sep = System.getProperty("file.separator");
    String filename = ROOTDIR + sep + "folder" + sep + "afile";

Если вы отдельно создали ROOTDIR на основе некоторой политики - не только платформу, но и хотите ли вы, чтобы ваш "файл" был относительно фактического корня файловой системы или относился к домашнему каталогу пользователя.

Но определенно, использование свойства разделителя файлов делает ваши программы более широко используемыми. Это больше работает? Да. Как говорит Ванда Сайкс: "Но это того стоит".