Быстрый вопрос. Есть ли эквивалент @ применительно к строкам в Java:
Например, я могу сделать это @"c:\afolder\afile"
на C # и заставить его игнорировать escape-символы при обработке вместо того, чтобы делать это "c:\\afolder\\aFile"
. Есть ли эквивалент в Java?
хммм: stackoverflow ускользает от меня .. лол. Второй пример следует читать:
c: (двойная обратная косая черта) после (двойная обратная косая черта) aFile
@
его можно использовать также для использования ключевых слов языка в качестве идентификаторов.Ответы:
Нет . Ваш единственный выбор - экранирование / экстернализация строки.
источник
Нет, в Java нет буквальных строковых литералов .
Тем не менее, если вам нужен Java-подобный (и основанный на Java-VM) язык , вы можете взглянуть на Groovy, который имеет различные формы строковых литералов .
источник
groovy.codehaus.org
ссылки не работаютКак сказали Кент и Джон, нет.
Я отвечаю только для того, чтобы указать, что даже если бы это было, для вашего конкретного случая, это было бы плохой идеей в общем случае, если бы предполагалось, что программа будет более чем разовой.
Программы Java работают не только на Windows, но и на других платформах, у которых другие разделители файлов. Итак, вместо того, чтобы иметь дело с экранированными обратными косыми чертами, правильный способ обработки вашего конкретного примера - получить свойство разделителя файлов:
Где вы бы отдельно создали ROOTDIR на основе некоторой политики - не только платформы, но и того, хотите ли вы, чтобы ваш «файл» относился к фактическому корню файловой системы или к домашнему каталогу пользователя.
Но, безусловно, использование свойства разделителя файлов делает ваши программы более удобными. Это больше работы? Да. Как говорит Ванда Сайкс: «Но оно того стоит».
источник
В настоящее время он не поддерживается в Java, но может быть доступен в будущих выпусках. 23.01.2018 был создан JEP 326: Raw String Literals.
Следите за прогрессом на https://bugs.openjdk.java.net/browse/JDK-8196004
Возможно, когда-нибудь вы сможете это сделать с помощью:
ОБНОВЛЕНИЕ: JEP предложил отказаться от JDK 12: 326: необработанные строковые литералы (предварительная версия). Вы можете прочитать обоснование здесь: http://mail.openjdk.java.net/pipermail/jdk-dev/2018-De December/002402.html
И подробнее здесь https://bugs.openjdk.java.net/browse/JDK-8215682
Итог : в ближайшем будущем в Java не будет дословных строк. И даже если он появится, скорее не будет ''.
источник