特大喜讯!鸿蒙项目来了:在线电子词典
完整的项目视频课程请识别下面的二维码进入我的B站:本项目是基于鸿蒙的电子词典,支持使用本地词库和远程词库。本地词库使用SQLite数据库、远程词典使用爬虫获取的单词数据。爬虫使用JSou...
·
完整的项目视频课程请识别下面的二维码进入我的B站:

本项目是基于鸿蒙的电子词典,支持使用本地词库和远程词库。本地词库使用SQLite数据库、远程词典使用爬虫获取的单词数据。爬虫使用JSoup库(基于Java语言)。欲知详情,请继续观看本课程的视频。
本课程以实战为宗旨,step by step来完整在线电子词典项目。例如,下面是异步搜索网络词库的源代码。
class AsyncSearchWord extends Thread {
private String word;
private RdbStore store;
private SearchWordCallback callback;
public AsyncSearchWord(String word, RdbStore store, SearchWordCallback callback) {
this.word = word;
this.store = store;
this.callback = callback;
}
@Override
public void run() {
try {
Document doc = Jsoup.connect("https://www.iciba.com/word?w=" + word).get();
Elements ulElements = doc.getElementsByClass("Mean_part__1RA2V");
String insertSQL = "insert into t_words(word,type,meanings) values(?,?,?);";
List<WordData> wordDataList = new ArrayList<>();
for(Element ulElement: ulElements) {
Elements liElements = ulElement.getElementsByTag("li");
for(Element liElement:liElements) {
WordData wordData = new WordData();
Elements iElements = liElement.getElementsByTag("i");
for(Element iElement:iElements) {
wordData.type = iElement.text();
break;
}
Elements divElements = liElement.getElementsByTag("div"); // 得到词义
for(Element divElement:divElements) {
wordData.meanings = divElements.text();
break;
}
// 插入每一个词性的解释
wordDataList.add(wordData);
store.executeSql(insertSQL,new String[]{word, wordData.type,wordData.meanings});
}
break;
}
if(callback != null) {
callback.onResult(wordDataList);
}
}
catch (Exception e)
{
}
}
}
从本地词库搜索单词的源代码:
public ArrayList<WordData> searchLocalDict(String word) {
word = word.toLowerCase();
String[] args = new String[]{word};
ResultSet resultSet = store.querySql("select * from t_words where word = ?",args);
ArrayList<WordData> result = new ArrayList<>();
int i = 0;
while(resultSet.goToNextRow())
{
WordData wordData = new WordData();
wordData.type = resultSet.getString(2);
wordData.meanings = resultSet.getString(3);
result.add(wordData);
}
resultSet.close();
return result;
}
更多推荐



所有评论(0)