Скажите, что у Вас есть Строковый литерал с большим количеством кавычек в нем. Вы могли выйти из них всех, но это - боль, и трудный читать.
На некоторых языках можно просто сделать это:
foo = '"Hello, World"';
В Java, однако, ''
используется для char
s, таким образом, Вы не можете использовать его для String
s этот путь. Некоторые языки имеют синтаксис для работы вокруг этого. Например, в Python, можно сделать это:
"""A pretty "convenient" string"""
Java имеет что-нибудь подобным?
Ответ отрицательный, и доказательство содержится в Спецификации языка Java :
StringLiteral:
"StringCharacters"
StringCharacters:
StringCharacter
| StringCharacters StringCharacter
StringCharacter:
InputCharacter but not " or \
| EscapeSequence
Как видите, StringLiteral
может быть просто привязан by "
и не может содержать специальный символ без экранирования ..
Примечание: вы можете встроить Groovy в свой проект, это расширит синтаксис Java, позволяя использовать '' 'многострочная строка' ''
, '"строка с одинарными кавычками"'
, а также "строка с $ {variable}"
.
Простой ответ: Нет.
Для более длинных строк, которые нужно экранировать, я обычно читаю их из какого-то внешнего ресурса.
Нет, и меня всегда раздражало отсутствие в Java различных строково-буквенных синтаксисов.
Вот трюк, который я использовал время от времени:
String myString = "using `backticks` instead of quotes".replace('`', '"');
В основном я делаю что-то подобное только для статического поля. Поскольку оно статично, код замены строки вызывается один раз, при инициализации класса. Так что штраф за производительность во время выполнения практически отсутствует, и это делает код значительно более разборчивым.