Один из способов сохранить информацию в новой строке с JSoup - это предшествовать всем новым тегам строки с помощью некоторой фиктивной строки, выполнить JSoup и заменить фиктивную строку на «\n».
String html = "<p>Line one</p><p>Line two</p>Line three<br/>etc.";
String NEW_LINE_MARK = "NEWLINESTART1234567890NEWLINEEND";
for (String tag: new String[]{"</p>","<br/>","</h1>","</h2>","</h3>","</h4>","</h5>","</h6>","</li>"}) {
html = html.replace(tag, NEW_LINE_MARK+tag);
}
String text = Jsoup.parse(html).text();
text = text.replace(NEW_LINE_MARK + " ", "\n\n");
text = text.replace(NEW_LINE_MARK, "\n\n");
Это не перезаписывает глобальное значение - действительно, вы не можете, потому что const VAR1
создает константу - это никогда не может быть переназначено напрямую с помощью =
. Ваш код испытывает подъем переменной - вот объяснение:
Ваш код содержит две переменные с одинаковыми именами - одну вне функции (глобальная область) и одну внутри функции (локальная область) ).
Вы пытаетесь прочитать переменную внутри функции, прежде чем назначить ее. Это делает ваш код эквивалентным этому:
const VAR1 = 3;
document.onclick = () => {
var VAR1;
console.log(VAR1);
VAR1 = 2;
console.log(VAR1);
}
Если вы запустите свой код без переменной локальной области видимости, тогда он работает, глядя на глобальную область видимости (поскольку переменные работают из текущий объем за пределы):
const VAR1 = 3;
document.onclick = () => {
//There's no VAR1 here, so it goes out a level and looks for VAR1 there and so on until it finds it.
console.log(VAR1);
console.log(VAR1);
}
Это связано с эффектом перемещения вашей переменной VAR внутри обработчика событий. Таким образом, это
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Document</title>
</head>
<body>
<script>
const VAR = 3;
document.onclick = function(event) {
console.log(VAR); // undefined, VAR in so-called Temporary Dead Zone
var VAR = 2;
console.log(VAR); // 2
};
</script>
</body>
</html>
эквивалентно этому
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Document</title>
</head>
<body>
<script>
const VAR = 3;
document.onclick = function(event) {
var VAR; // VAR declared but NOT defined, so VAR again in TDZ
console.log(VAR); // undefined
VAR = 2; // VAR defined
console.log(VAR); // 2
};
</script>
</body>
</html>
Возможно, вы захотите прочитать больше о подъемах, объявлениях var Old-School и TDZ. - С уважением, М.