Это может звучать как нечетный запрос, но я хотел знать, есть ли простой способ в Java преобразовать «объявление строки Java» в фактическую строку.Java: преобразование «строкового выражения» в фактическую строку
Позвольте мне пояснить пример. Я хочу, чтобы прочитать что-то вроде этого:
"This is an example " +
"of a complex\nString declaration " +
"in Java"
в строковом объект, который будет содержать:
"This is an example of a complex\nString declaration in Java"
(ускользает, такие как \n
должно быть протектором как фактические побеги, а не в качестве исходного текста).
ОБЪЯСНЕНИЕ ПОЧЕМУ: Поскольку я думаю, люди собираются спросить, позвольте мне объяснить обоснование этого. Я использую библиотеку разбора Java, которая может анализировать файл Java и из которого я могу извлечь значения, например, аннотации или константы. Тем не менее, парсер несколько ограничен и не будет распознавать сложные конкатенации и ускользать, как выше, так что в основном я получаю только весь первый пример как необработанную строку, и мне приходится анализировать и конкатенацию и избегать ее самостоятельно. Я просто задавался вопросом, есть ли какой-то встроенный способ (возможно, через отражение?), Чтобы сделать это.
EDIT: Я знаю, что я могу сделать «грубый» синтаксический разбор довольно легко (например: разделить на знаки «+», а затем обрезать, слить, стереть кавычки и т. Д., Но я не знаю всех изменения, которые могут быть (как многие операторы поддерживают ли строки? Just конкатенации или есть другие ?? И сколько побег макросы есть?)
Взгляните на http://stackoverflow.com/questions/3537706/howto-unescape-a-java-string-literal-in-java – Codebender
@Codebender: решения там, похоже, не анализируют конкатенацию, просто escape команд. Но это начало, спасибо –