Строка HTML внутри вложенной строки

У меня длинный очень длинный html, который должен быть заключен в строку Javascript, которая, в свою очередь, заключена в строку Java следующим образом:

String html = "javascript:var html='...all goes here...';void(0);";

Теперь, где написано... все идет здесь..., есть все html, включая "и" и даже другие специальные символы. Могу ли я пропустить их на Java-пути?

Ответ 1

Здесь вы получаете удовольствие от строк, которые интерпретируются несколько раз. ваши "кавычки" должны быть экранированы для java, но ваши "кавычки" должны быть экранированы для javascript. Таким образом, ваши "кавычки" вы можете избежать нормально, но ваши "кавычки" должны иметь символ\перед ними, когда javascript интерпретируется, поэтому вам понадобится буквальный\в вашей строке java (или \, экранированный). таким образом, если вы установите свою html-переменную в html:

<span class="class">Here Johnny!</span>

вам нужно будет:

String html = "javascript:var html='<span class=\"class\">Here\\ Johnny!</span>';void(0);";

Ответ 2

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

"This is a quoted string: \"I'm a quoted string\"."

Потребность в такой вещи (вставка кода js со строками в строку Java) может указывать на то, что дизайн вашего кода не подходит.