我使用返回List的JerichoHTML解析器(getAllElements方法)解析HTML数据。但是,我需要将数据存储在String []中。但是,我是如何做到的,(即使通过嵌套式转换,如(String)((Object)theList))它总是失败....任何想法如何解决这个问题?在jericho docs上找不到任何关于此的帮助...
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)
答案 0 :(得分:0)
在java中,强制转换永远不会更改对象的类型,而是通知编译器,您更准确地知道该类型。这不是这种情况。你想要的是转换。在java中没有通用的转换方法,但转换为String可以通过对象的toString()方法或通过Sring.valueOf()
以null保存方式完成。for (int i = 0; i < filteredList.size(); i++) {
filteredArray[i] = String.valueOf(filteredList.get(i));
}