0

今天我尝试使用lib as jericho-html-3.2从简单的html中提取文本......我遇到了一个奇怪的文本假长度问题,如下所示:

如果我有 html 作为这个

Hello World :)<br><br>Hello World :(<br><br>Hello World ;)<br>

...我的RichTextArea getText().length()返回42,它实际上是正确的长度,但是当我尝试使用类似的代码从这个 html 中提取文本时

        Source source = new Source(html);
    String text = source.getTextExtractor().toString();

...text.length()回报44

所以我不明白为什么长度为42的文本变成长度为44的文本以及如何修复它?

谢谢

4

2 回答 2

0

它只有 44 个,您需要将所有
标签视为一个字符,将空格视为一个字符,将所有笑脸视为一个字符。

H(1)e(2)l(3)l(4)o(5) (6)W(7)o(8)r(9)l(10)d(11) (12):)(13)<br>(14)<br>(15)H(16)e(17)l(18)l(19)o(20) (21)W(22)o(23)r(24)l(25)d(26) (27:((28)<br>(29)<br>(30)H(31)e(32)l(33)l(34)o(35) (36)W(37)o(38)r(39)l(40)d(41) (42);)(43)<br>(44)
于 2013-08-04T05:55:03.723 回答
0

我不得不更深入地挖掘它,我认为错误的文本长度来自html换行符,因为jericho html-parser出于某种原因用空格或其他东西替换了新的换行符......

至于现在,我不能确定它将哪些标签替换为哪些字符,但至于我的情况,我只是尝试使用像这样的正则表达式做一些走动(见片段)

html=html.replaceAll("<br>","");

Source source = new Source(html);
String text = source.getTextExtractor().toString();

...所以现在它确实将原始文本长度返回为42 :)

我希望小费可以节省一天


谢谢大家的帮助

于 2013-08-05T01:04:14.677 回答