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

本文介绍了如何在Java中实现首字母模糊查询功能,利用pinyin4j.jar库获取字符串的首字母,然后将汉字与首字母组合成List并进行过滤查询。提供了具体的代码示例,包括获取首字母的方法和查询方法。
摘要由CSDN通过智能技术生成

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

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

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

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

参考代码如下:

//拼装List

public List  getSZM(  List  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;

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值