3 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
鏈接到的答案中的解決方案通常需要使用正則表達(dá)式(這是一種容易出錯(cuò)的方法),或者安裝第三方庫(kù)(例如jsoup或jericho)。在Android設(shè)備上更好的解決方案是僅使用Html.fromHtml()函數(shù):
public String stripHtml(String html) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
return Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY).toString();
} else {
return Html.fromHtml(html).toString();
}
}
這使用Android內(nèi)置的HTML解析器來(lái)構(gòu)建Spanned沒(méi)有任何html標(biāo)簽的輸入html 的表示形式。然后,通過(guò)將輸出轉(zhuǎn)換回字符串來(lái)剝離“ Span”標(biāo)記。
隨著討論這里,Html.fromHtml行為已經(jīng)改變,因?yàn)锳ndroid的N.請(qǐng)參閱文檔獲取更多信息。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
不好意思,我認(rèn)為這對(duì)其他人可能會(huì)有所幫助,
只需刪除html條
Html.fromHtml(htmltext).toString()
這樣,html標(biāo)記將被替換為字符串,但是字符串的格式將不正確。因此我做到了
Html.fromHtml(htmltext).toString().replaceAll("\n", "").trim()
這樣,我首先用具有空格的nextline替換并刪除了空格。同樣,您可以刪除其他人。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
Html.escapeHtml(String)如果您定位的是API 16或更高版本,則可以選擇使用。
對(duì)于也在API 16以下定位的對(duì)象,您可以改為調(diào)用以下類,HtmlUtils.escapeHtml(String)而我只是從源代碼中拉出該類Html.escapeHtml(String)。
public class HtmlUtils {
public static String escapeHtml(CharSequence text) {
StringBuilder out = new StringBuilder();
withinStyle(out, text, 0, text.length());
return out.toString();
}
private static void withinStyle(StringBuilder out, CharSequence text,
int start, int end) {
for (int i = start; i < end; i++) {
char c = text.charAt(i);
if (c == '<') {
out.append("<");
} else if (c == '>') {
out.append(">");
} else if (c == '&') {
out.append("&");
} else if (c >= 0xD800 && c <= 0xDFFF) {
if (c < 0xDC00 && i + 1 < end) {
char d = text.charAt(i + 1);
if (d >= 0xDC00 && d <= 0xDFFF) {
i++;
int codepoint = 0x010000 | (int) c - 0xD800 << 10 | (int) d - 0xDC00;
out.append("&#").append(codepoint).append(";");
}
}
} else if (c > 0x7E || c < ' ') {
out.append("&#").append((int) c).append(";");
} else if (c == ' ') {
while (i + 1 < end && text.charAt(i + 1) == ' ') {
out.append(" ");
i++;
}
out.append(' ');
} else {
out.append(c);
}
}
}
}
我正在使用這個(gè)效果很好的課程。
- 3 回答
- 0 關(guān)注
- 519 瀏覽
添加回答
舉報(bào)