今天我尝试将lib用作jericho-html-3.2到extract text from simple html ......我遇到了一个奇怪的文本假长度问题,如下所示:
如果我有html这个
Hello World :)<br><br>Hello World :(<br><br>Hello World ;)<br>
...我的RichTextArea getText().length()
返回 42 实际上是正确的长度,但是当我尝试使用类似
Source source = new Source(html);
String text = source.getTextExtractor().toString();
... text.length()
返回 44
所以我不明白为什么长度为 42 的文字变成长度为 44 的文字以及如何修复它?
由于
答案 0 :(得分: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)
答案 1 :(得分:0)
我不得不深入挖掘它,我认为错误的文本长度来自html断路器,因为jericho html-parser 由于某种原因用空格替换新的断路器 什么......
至于现在,我无法确定哪些标签会替换哪些字符,但就我的情况而言,我只是试图像这样做一些using regular expression(参见片段)
html=html.replaceAll("<br>","");
Source source = new Source(html);
String text = source.getTextExtractor().toString();
...所以现在它确实将原始文本长度恢复为 42 :)
我希望小费可以节省一天
谢谢大家的帮助