美文网首页
java实现首字母模糊查询的功能

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

作者: Richael_琪 | 来源:发表于2018-03-21 17:30 被阅读0次

    ①,要实现首字母模糊匹配,首先我们需要得到你要搜索内容的首字母,对于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;

    }


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

    相关文章

      网友评论

          本文标题:java实现首字母模糊查询的功能

          本文链接:https://www.haomeiwen.com/subject/hsagqftx.html