0
点赞
收藏
分享

微信扫一扫

PinYin4j和jequery.ui实现智能提示首字母、全拼、中文检索

月白色的大狒 2022-02-21 阅读 54
ui

PinYin4j和jequery.ui实现智能提示首字母、全拼、中文检索

Pinyin4j的使用主要是将中文汉字转换为拼音,一般使用PinyinHelper类的静态方法转换即可:

如:Stringpinyin[ ]=PinyinHelper.toHanyuPinyinStringArray(‘拼’);返回的数组为该字符的拼音,即pinyin[0]=pin1,数字1为声调。之所以返回为数组,因为被判断的汉字可能有多个读音。如果输入的参数不是汉字,则返回null。

对于拼音的转换结果有一些特殊的格式要求,我们可以创建格式化对象

HanyuPinyinOutputFormat,例如:HanyuPinyinOutputFormat format=new

HanyuPinyinOutputFormat();然后分别调用format的set方法设置一些格式。

目前pinyin4j支持的格式有:

声调的格式化,例:“拼”字的拼音格式输出有“pin”或“pin1”或“pīn”。

format.setToneType(HanyuPinyinToneType)设置声调格式,方法参数有以下常量对象:

HanyuPinyinToneType.WITH_TONE_MARK 用声调符号表示

HanyuPinyinToneType.WITH_TONE_NUMBER用数字表示声调

HanyuPinyinToneType.WITHOUT_TONE无声调表示

对特殊拼音ü的显示格式,例:“u:”或“ü”或“v”。

format.setVCharType(HanyuPinyinVCharType)设置特殊拼音ü的显示格式,方法参数有以下常量对象:

HanyuPinyinVCharType.WITH_U_AND_COLON 以U和一个冒号表示该拼音

HanyuPinyinVCharType.WITH_U_UNICODE 以ü表示

HanyuPinyinVCharType.WITH_V 以V表示该字符

大小写的转化,例:“pin1”或“PIN1”。

format.setCaseType(HanyuPinyinCaseType);  HanyuPinyinCaseType.LOWERCASE 转换后以全小写方式输出

HanyuPinyinCaseType.UPPERCASE 转换后以全大写方式输出  

设置好格式对象后还是利用上述的工具类方法进行拼音转换,只不过需要将格式化对象当方法参数传入转换方法,告知要转换的格式要求: 

String[]pinyin=PinyinHelper.toHanyuPinyinStringArray(‘刘’,outputFormat); 但该方法会有异常抛出,注意处理。

以下例子就是一个汉字转拼音首字母和全拼的例子:

需引入pinyin4j.jar

 

后台将汉字以及转换的拼音,拼音首字母以map反馈给前台,代码如下:

前台搜索框代码:

需引入jquery-ui.js。

前台拿到map,通过指定source为自定义函数,对map进行处理来实现自定义数据的获取,函数主要有2个参数(request,response),分别用于获取输入的值、呈现结果

代码如下: 

具体实现效果如下:

举报

相关推荐

0 条评论