java实现首字母模糊查询的功能

2018-03-21  本文已影响0人  Richael_琪

①,要实现首字母模糊匹配,首先我们需要得到你要搜索内容的首字母,对于java来说,有一个非常实用的包:pinyin4j.jar

这个拼音包中的PinyinHelper 方法可以得到String的首字母。

②,得到首字母之后,我们需要将原有的汉字和得到的首字母拼入同一个list<MAP>中。

③,接下来就是对list的内容进行过滤,我用的是最简单的 for循环实现。


参考代码如下:

//拼装List

public List  getSZM(  List<Map>  map ) {

for (Map m : map) {

m.put("SZM", getPinYinHeadChar((String) m.get("汉语字段")));

    }

return list;()

}

//获取首字母

public static StringgetPinYinHeadChar(String str) {

String convert ="";

    for (int j =0; j < str.length(); j++) {

char word = str.charAt(j);

        // 提取汉字的首字母

        String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);

        if (pinyinArray !=null) {

convert += pinyinArray[0].charAt(0);

        }else {

convert += word;

        }

}

return convert;

}

//查询(将组装好的List 传入查询方法,实现查询)

public ListqueryFundList(Map param, List> fundList) {

List> list =new ArrayList>();

    String q = (String) param.get("q");

    String fundName;

    String fundCode;

    String szm;

    if (StringUtils.isNotEmpty(q)) {

for (Map m : fundList) {

fundName = (String) m.get("汉语字段");

            szm = (String) m.get("SZM");

            if ( fundName.contains(q) || szm.contains(q)) {

list.add(m);

            }

}

}else {

list = fundList;

    }

return list;

}


                                                                                                                                                                                      第一次写文章,请多多包涵。

上一篇 下一篇

猜你喜欢

热点阅读