在项目中,可能使用拼音缩写来完成搜索。比如,以商品查询为例,一般的查询会按照商品编号、商品名称等来查询,另外也可以按照商品名称的拼音缩写以autoComplete的方式来完成搜索。
本文给出一个使用PinYin4j实现汉字转拼音的实例:
import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; public final class PinYinGenerator { private static final String EMPTY = ""; /** 大写输出 */ private static final HanyuPinyinOutputFormat OUTPUT_FORMAT = new HanyuPinyinOutputFormat(); static { OUTPUT_FORMAT.setCaseType(HanyuPinyinCaseType.UPPERCASE); OUTPUT_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE); } /** * 汉字转拼音的方法 * * 如好丽友好多鱼(浓香茄汁)33g转换成HAOLIYOUHAODUOYU(NONGXIANGQIEZHI)33g * * @param chineseCharacters * @return * @throws BadHanyuPinyinOutputFormatCombination */ @SuppressWarnings("deprecation") public static String formatToPinYin(String chineseCharacters) throws BadHanyuPinyinOutputFormatCombination { if (null == chineseCharacters || EMPTY.equals(chineseCharacters.trim())) return chineseCharacters; return PinyinHelper.toHanyuPinyinString(chineseCharacters, OUTPUT_FORMAT, EMPTY); } /** * 汉字转拼音的方法 * * 如:好丽友好多鱼(浓香茄汁)33g转换成HLYHDY(NXQZ)33g * * @param chineseCharacters * @return * @throws BadHanyuPinyinOutputFormatCombination */ public static String formatAbbrToPinYin(String chineseCharacters) throws BadHanyuPinyinOutputFormatCombination { if (null == chineseCharacters || EMPTY.equals(chineseCharacters.trim())) return chineseCharacters; char[] chars = chineseCharacters.toCharArray(); StringBuilder sb = new StringBuilder(); for (char c : chars) { if (c > 127) { sb.append(PinyinHelper.toHanyuPinyinStringArray(c, OUTPUT_FORMAT)[0].toCharArray()[0]); } else { sb.append(c); } } return sb.toString(); } }
测试代码和结果如下:
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; public class PinYinTest { private static final String BANK_NAME = "中国人民银行"; private static final String NAME = "好丽友好多鱼(浓香茄汁)33g"; public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination { System.out.printf("(Full PinYin) Convert %s to %s\n", NAME, PinYinGenerator.formatToPinYin(NAME)); System.out.printf("(Abbr PinYin) Convert %s to %s\n", NAME, PinYinGenerator.formatAbbrToPinYin(NAME)); System.out.printf("(Full PinYin) Convert %s to %s\n", BANK_NAME, PinYinGenerator.formatToPinYin(BANK_NAME)); System.out.printf("(Abbr PinYin) Convert %s to %s\n", BANK_NAME, PinYinGenerator.formatAbbrToPinYin(BANK_NAME)); } }
更多例子,请访问 : http://thecodesample.com/
相关推荐
使用拼音4j将汉字转为拼音的代码及其pinyin4j的jar包
pinyin4J java拼音转换工具 java汉字转换拼音工具
java安卓android汉字转拼音中文转拼音pinyin4j简化精简版. 网上流传的有180KB,太大了,对于android开发来说。我精简了很多无关内容,收录常用汉字大约2万个,完全够用了,还专门写了一个helper类,直接调用这个...
通过网上的汉字拼音对照表构建的一个二维数组,通过遍历汉字获取拼音,基本很多生僻字都支持,看了网上的通过GBK码获得的拼音代码,这种代码会导致很多汉字不能找到,比如一坨粪的”坨“。这个的话连“丨”都能查到...
基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-...
java版本汉字转拼音库pinyin4j,以及pinyin4j中用到的sparta库,都是源码。
pinyin4j能够根据中文字符获取其对应的拼音,而且拼音的格式可以定制。 pinyin4j是一个支持将中文转换到拼音的Java开源类库。 支持简体中文和繁体中文字符; 支持转换到汉语拼音,通用拼音, 威妥玛拼音(威玛拼法...
汉字转拼音jar包附带封装 适用于Android和Java
对pinyin4j的封装,并且能够进行汉字和拼音已经ASCII码的转换
汉字转拼音的JAVA代码示例,可以根据要求将汉字转换为相应的拼音或拼音首字母等,基于流行的pinyin4j库,使用简单方便
Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。 主要的功能有: - 支持同一汉字有多个发音 - 支持拼音的格式化输出,比如第几声之类的 - 支持简体中文、繁体中文转换为拼音
将简体中文和繁体中文转换拼音的jar包,将简体中文和繁体中文转换拼音的jar包
汉字 转换 拼音
该文档提供中国城市的拼音与汉字的互转,ping4j.jar
汉字转拼音代码 及pinyin4j-2.5.0.jar包
实现思路很简单,汉字有21个声母:b, p, m, f, d, t, n, l, g, k, h, j, q, x, zh, ch, sh, r, z, c, s 有韵母24个,其中单韵母有6个:a, o, e, i, u, v, 复韵母有18个:ai , ei, ui , ao, ou, iu , ie, ve, er, an...
纯字库转换,包含几乎所有汉字,网上现有传播的转换都是unicode编码转换,其中很多字不在字库内,举例:瑛(ying)无法识别,存在很多问题,本代码直接字库转换,且公开文本,没有找到的字还可以添加到字库。...
1、添加pinyin4j-2.5.0.jar 的jar包 2、PinYinUtil至此汉字转换拼音,汉字首字母
Java中,汉语转换成拼音的jar包。放到项目下,直接引用pinyin4j-2.5.0.jar就行。或者直接放到maven本地资源文件下解压压缩包直接再项目配置文件中引用。