📄 wordlist.java
字号:
import java.io.*;
import java.util.*;
public class WordList
{
private Vector<String> dictionary;
private Vector<String> queryResult;
private int dictionarySize = 0;
private int queryResultSize = 0;
public WordList() throws IOException // 构造函数
{
init(); // 初始化
}
public void init() throws IOException // 初始化预置词典
{
// 实例化一个向量
dictionary = new Vector<String>(40000, 20000);
queryResult = new Vector<String>(5000);
// 从jar文件里读取内置词库
BufferedReader br = new BufferedReader(new InputStreamReader(WordList.class.getResourceAsStream("/wordlib.txt")));
String aWord = null;
while((aWord = br.readLine()) != null) { // 循环判断文件是否读取完毕
if(aWord.length() == 0) continue; // 过滤空白行
dictionary.addElement(aWord); // 将一个词加入词典
}
br.close(); // 关闭文件输入流
// 文件读取完毕
setDictionarySize(dictionary.size()); // 设置词典包含的词数
}
public void addWord(String word) // 向词典中添加一个词
{
dictionary.addElement(word);
}
public void addWords(Vector<String> words) // 向词典中添加一批词
{
for(int i = 0; i < words.size(); i++)
dictionary.addElement(words.elementAt(i));
}
public Vector<String> getDictionary() // 返回词典
{
return dictionary;
}
public int getDictionarySize() // 获取词典包含的词数
{
return dictionarySize;
}
private void setDictionarySize(int size) // 设置词典包含的词数
{
dictionarySize = size;
}
public void setDictionary(File wordLibFile) throws IOException // 将词典设置为指定文件中的词库
{
dictionary.removeAllElements(); // 移除预置词典中的所有词
BufferedReader br = new BufferedReader(new FileReader(wordLibFile)); // 创建文件输入流
String aWord = null;
while((aWord = br.readLine()) != null) { // 循环判断文件是否读取完毕
if(aWord.length() == 0) continue; // 过滤空白行
dictionary.addElement(aWord); // 将一个词加入词典
}
br.close(); // 关闭文件输入流
// 文件读取完毕
setDictionarySize(dictionary.size());
}
public Vector<String> qeury(String queryWord)
{
queryResult.removeAllElements(); // 移除查询结果库中的所有词
String word = null;
for(int i = 0; i < getDictionarySize(); i++) {
if(dictionary.elementAt(i).contains(queryWord)) {
word = dictionary.elementAt(i);
queryResult.addElement(highLight(word, queryWord));
}
}
queryResultSize = queryResult.size();
return queryResult;
}
public int getQueryResultSize()
{
return queryResultSize;
}
public String highLight(String word, String queryWord)
{
String formattedWord = null;
formattedWord = "<html>" + word.substring(0, word.indexOf(queryWord)) +
"<font color=red>" + queryWord + "</font>" + // 高亮 查询部分
word.substring(word.indexOf(queryWord) + queryWord.length()) +
"</html>";
return formattedWord; // 返回格式化的字符串
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -