我使用JerichoHTML解析器(getAllElements方法)解析HTML数据,该解析器返回一个List。但是,我需要将数据存储在String[]中。不管我怎么做(即使是像(String)((Object)theList)这样的嵌套类型转换),它总是失败。。。。知道怎么解决这个问题吗?在杰里科医生那里找不到任何帮助。。。
public static String[] htmlParser(String htmlText){
Source source = new Source(htmlText);
List<Element> filteredList = source.getAllElements("p");
String[] filteredArray = new String[filteredList.size()];
for(int i = 0; i<filteredList.size();i++){
filteredArray[i] =(String) ((Object) filteredList.get(i));
}
return filteredArray;
}
错误如下:
Exception in thread "main" java.lang.ClassCastException: net.htmlparser.jericho.Element cannot be cast to java.lang.String
at InternalLinking.InputKeywordsLinksAlternative.htmlParser(InputKeywordsLinksAlternative.java:156)
at InternalLinking.InputKeywordsLinksAlternative.inputLinksCountLess150(InputKeywordsLinksAlternative.java:70)
at InternalLinking.InputKeywordsLinksAlternative.applyWordCountFilters(InputKeywordsLinksAlternative.java:61)
at InternalLinking.InputKeywordsLinksAlternative.main(InputKeywordsLinksAlternative.java:21)
在java中,强制转换永远不会更改对象的类型,而是通知编译器,您更准确地了解该类型。这里的情况并非如此。你想要的是转换。在java中没有通用的转换方法,但可以通过对象的toString()方法或通过Sring.valueOf()以空保存方式转换为String
for (int i = 0; i < filteredList.size(); i++) {
filteredArray[i] = String.valueOf(filteredList.get(i));
}