日期:2014-05-17  浏览次数:21177 次

java如何实现拼音首字母检索汉字
用的sql server2008数据库,一张表中有个字段存入的全部是汉字,想通过每个汉字的拼音的首字母进行查询,如何实现?
    1、首先增加一个字段,用来存入每个汉字的拼音的首字母这种方式不考虑。
    2、如果用数据库创建函数的方式实现,但是多音字没办法解决?
    3、java中有没有直接可以用的工具类呢?
希望有高手帮忙实现这个功能,有实例代码就更好更方便了,非常感谢!

------解决方案--------------------
这样的工具有,但是你用数据库存汉字做什么?
------解决方案--------------------
很明显,数据中应该有三个字段是用来做索引的,字段一:每一个词的拼音,字段二:每一个词的首字母,字段三每个词的汉字,在like的时候同时like这三个字段
------解决方案--------------------
pinyin4j.jar 将汉字转换为拼音,你可以逆向
------解决方案--------------------
我感觉这个挺复杂的。有点类似做输入法功能。需要考虑频繁词,词组,多音多义等等问题。Google有Google拼音,百度有百度拼音,sogou有sogou拼音。他们都有词库可以直接用。

用jar包处理我感觉是不太靠谱的,这个必定要走数据字典。
------解决方案--------------------
可以扩展一个表A,存储汉字的首字母和原数据表B中的id。
在进行查询的时候,假如输入cq,那就查A中like cq 的记录,再根据A中存的B.id查询B的记录,便可取到字段实际含义。

扩展包的数据同步,有以下方法:
1、使用数据库触发器(传闻性能不高);
2、获取到批量的记录,定时执行更新,比如spring中配置job任务。

JAVA获取汉字拼音或拼音首字母
------解决方案--------------------
肯定有索引对应的
------解决方案--------------------
引用:
pinyin4j.jar 将汉字转换为拼音,你可以逆向

我们最近刚做项目,也是用这个实现的,多音字本身就没太多办法,莫非楼主希望能够根据语义来识别每个字在特定场景的读音吗?