diff --git a/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt b/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt
index 626bbf70c..fd3c6c269 100644
--- a/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt
+++ b/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt
@@ -24,25 +24,18 @@ object HtmlFormatter {
html ?: return ""
var formatHtml = formatKeepImg(html)
val sb = StringBuffer()
- var appendPos = 0
- while (appendPos < formatHtml.length) {
- val matcher = AppPattern.imgPattern.matcher(formatHtml)
- if(matcher.find()) {
- val urlArray = matcher.group(1)!!.split(AnalyzeUrl.splitUrlRegex)
- var url = NetworkUtils.getAbsoluteURL(redirectUrl, urlArray[0])
- if (urlArray.size > 1) {
- url = "$url,${urlArray[1]}"
- }
- sb.append(formatHtml.substring(appendPos, matcher.start()))
- sb.append("
")
- appendPos = matcher.end()
- formatHtml = formatHtml.substring(appendPos, formatHtml.length)
- appendPos = 0
- } else {
- sb.append(formatHtml)
- appendPos = formatHtml.length
+ val matcher = AppPattern.imgPattern.matcher(formatHtml)
+ while (matcher.find()) {
+ val urlArray = matcher.group(1)!!.split(AnalyzeUrl.splitUrlRegex)
+ var url = NetworkUtils.getAbsoluteURL(redirectUrl, urlArray[0])
+ if (urlArray.size > 1) {
+ url = "$url,${urlArray[1]}"
}
+ //将Matcher上次匹配结尾到本次匹配结尾这段字符串序列追加到sb中,且是先将其中匹配到的部分替换后再追加
+ matcher.appendReplacement(sb, "
")
}
+ //将Matcher最后那个匹配之后的字串匹配到追加到sb中
+ matcher.appendTail(sb)
return sb.toString()
}