搜索中的分词器有很多种,包括中文、英文,一般的网站都会有站内搜索功能,也就是对用户输入的内容进行处理,本文对中文的全拼实现了一
个分词器,原理很简单,就是模式匹配。根据中文全拼的特点,即声母和韵母配对,首先列举出所有的声母,再分别列举出所有声母对应的韵母
个分词器,原理很简单,就是模式匹配。根据中文全拼的特点,即声母和韵母配对,首先列举出所有的声母,再分别列举出所有声母对应的韵母
集,分词的过程就是遍历匹配的过程。具体代码如下:
import java.util.ArrayList;
public class SpellTool {
static String result = "";// 最后要显示的结果
private static ArrayList<ArrayList<String>> ym = new ArrayList<ArrayList<String>>();// 单字集合
private static ArrayList<String> sm = new ArrayList<String>();// 声母集合
private static ArrayList<String> yy = new ArrayList<String>();// 单字集合
private static ArrayList<String> ym_b = new ArrayList<String>();// 声母b的韵母集合
private static ArrayList<String> ym_c = new ArrayList<String>();// 声母c的韵母集合
private static ArrayList<String> ym_d = new ArrayList<String>();// 声母d的韵母集合
private static ArrayList<String> ym_f = new ArrayList<String>();// 声母f的韵母集合
private static ArrayList<String> ym_g = new ArrayList<String>();// 声母g的韵母集合
private static ArrayList<String> ym_h = new ArrayList<String>();// 声母h的韵母集合
private static ArrayList<String> ym_j = new ArrayList<String>();// 声母j的韵母集合
private static ArrayList<String> ym_k = new ArrayList<String>();// 声母k的韵母集合
private static ArrayList<String> ym_l = new ArrayList<String>();// 声母l的韵母集合
private static ArrayList<String> ym_m = new ArrayList<String>();// 声母m的韵母集合
private static ArrayList<String> ym_n = new ArrayList<String>();// 声母n的韵母集合
private static ArrayList<String> ym_p = new ArrayList<String>();// 声母p的韵母集合
private static ArrayList<String> ym_q = new ArrayList<String>();// 声母q的韵母集合
private static ArrayList<String> ym_r = new ArrayList<String>();// 声母r的韵母集合
private static ArrayList<String> ym_s = new ArrayList<String>();// 声母s的韵母集合
private static ArrayList<String> ym_t = new ArrayList<String>();// 声母t的韵母集合
private static ArrayList<String> ym_w = new ArrayList<String>();// 声母w的韵母集合
private static ArrayList<String> ym_x = new ArrayList<String>();// 声母x的韵母集合
private static ArrayList<String> ym_y = new ArrayList<String>();// 声母y的韵母集合
private static ArrayList<String> ym_z = new ArrayList<String>();// 声母z的韵母集合
private static ArrayList<String> ym_sh = new ArrayList<String>();// 声母sh的韵母集合
private static ArrayList<String> ym_zh = new ArrayList<String>();// 声母zh的韵母集合
private static ArrayList<String> ym_ch = new ArrayList<String>();// 声母ch的韵母集合
static {
sm.add("b");//
sm.add("c");
sm.add("d");
sm.add("f");
sm.add("g");
sm.add("h");
sm.add("j");
sm.add("k");
sm.add("l");
sm.add("m");
sm.add("n");
sm.add("p");
sm.add("q");
sm.add("r");
sm.add("s");
sm.add("t");
sm.add("w");
sm.add("x");
sm.add("y");
sm.add("z");
sm.add("sh");
sm.add("zh");
sm.add("ch");
yy.add("