pinyin4j的简单的使用方法

作者
2025-05-09阅读 33

1、引入包

<!-- 汉语转拼音-->
<dependency>
  <groupId>com.belerweb</groupId>
  <artifactId>pinyin4j</artifactId>
  <version>2.5.0</version>
</dependency>

2、具体的使用

主要是HanyuPinyinOutputFormat的使用,修改拼音的输入格式

/**
 * 将中文转成拼音。如果是多音字,默认取第一个发音(可能跟实际姓名中的发音不符)
 * @param hanzi 中文字符串
 * @return
 */
private String hanziToPinyin(String hanzi) {
	// 如果你需要转换整个字符串的所有汉字为拼音,可以使用以下方式:
	StringBuilder pinyinBuilder = new StringBuilder();
	//定义拼音的输出格式
	HanyuPinyinOutputFormat pinyinOutputFormat = new HanyuPinyinOutputFormat();
	pinyinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 小写
	pinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不带声调(带声调的格式是:zhang1,不带声调格式是:zhang)
	try {
		for (char ch : hanzi.toCharArray()) {
			String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(ch, pinyinOutputFormat);
			if (pinyinArray != null && pinyinArray.length > 0) {
				pinyinBuilder.append(pinyinArray[0]); // 取第一个发音,如果有多个发音,可以根据需要选择使用哪个
			} else {
				pinyinBuilder.append(ch); // 如果不是汉字,直接添加到结果中
			}
		}
	} catch (BadHanyuPinyinOutputFormatCombination e) {
		log.info("汉字转换拼音失败");
		throw  new RuntimeException("汉字转换拼音失败");
	}
	log.info("汉字转换拼音结果: " + hanzi + "  -->>  " + pinyinBuilder.toString());
	return pinyinBuilder.toString();
}



全部评论

头像
乌兔
前端开发
私信
获得点赞 445
文章被阅读 31,261