汉字转换成拼音 :
首先jar:pinyin4j-2.5.0.jar
或:
<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency>
Java代码:
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.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; public class PinYinUtil { public static void main(String[] args) { System.out.println(getPinyin("中国红123")); //--zhongguohong123 } /** * @param china (字符串 汉字) * @return 汉字转拼音 其它字符不变 */ public static String getPinyin(String china){ HanyuPinyinOutputFormat formart = new HanyuPinyinOutputFormat(); formart.setCaseType(HanyuPinyinCaseType.LOWERCASE); formart.setToneType(HanyuPinyinToneType.WITHOUT_TONE); formart.setVCharType(HanyuPinyinVCharType.WITH_V); char[] arrays = china.trim().toCharArray(); String result = ""; try { for (int i=0;i<arrays.length;i++) { char ti = arrays[i]; if(Character.toString(ti).matches("[\\u4e00-\\u9fa5]")){ //匹配是否是中文 String[] temp = PinyinHelper.toHanyuPinyinStringArray(ti,formart); result += temp[0]; }else{ result += ti; } } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return result; } }