漢字轉拼音,
1,需要的的jar
<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency>
2,程式碼 import lombok.extern.slf4j.Slf4j; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; /** * 漢字轉拼音 * @author chenye * 2018年10月19日 */ @Slf4j public class PinyinUtil { public static String pinyin(String input) { StringBuilder pinyin = new StringBuilder(); for (int i = 0; i < input.length(); i++) { HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V); char c = input.charAt(i); String[] pinyinArray = null; try { pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, defaultFormat); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } if (pinyinArray != null && pinyinArray.length>0) { pinyin.append(pinyinArray[0]); } else if (c != ' ') { pinyin.append(input.charAt(i)); } } return pinyin.toString().trim().toLowerCase(); } public static void main(String[] args) { log.debug(pinyin("張三1")); } }
public static String pingyin(String input) {
StringBuilder pinyin = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
char c = input.charAt(i);
String[] pinyinArray = null;
try {
pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, defaultFormat);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
if (pinyinArray != null) {
pinyin.append(pinyinArray[0]);
} else if (c != ' ') {
pinyin.append(input.charAt(i));
}
}
return pinyin.toString().trim().toLowerCase();
}