汉语转为拼音
首先要先导入架包:com.belerweb:pinyin4j:2.5.1
工具类:
注释的方法,是可以将单个汉字转为拼音的,为注释的可以转化词语,
public class HanZiToPinYin { // public static String toPinYin(char hanzi){ // HanyuPinyinOutputFormat hanyuPinyin = new HanyuPinyinOutputFormat(); // hanyuPinyin.setCaseType(HanyuPinyinCaseType.LOWERCASE); // hanyuPinyin.setToneType(HanyuPinyinToneType.WITH_TONE_MARK); // hanyuPinyin.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE); // String[] pinyinArray=null; // try { // //是否在汉字范围内 // if(hanzi>=0x4e00 && hanzi<=0x9fa5){ // pinyinArray = PinyinHelper.toHanyuPinyinStringArray(hanzi, hanyuPinyin); // } // } catch (BadHanyuPinyinOutputFormatCombination e) { // e.printStackTrace(); // } // //将获取到的拼音返回 // return pinyinArray[0]; // } public static String getPinYinAllChar(String zn_str, int caseType) { char[] strChar = zn_str.toCharArray(); HanyuPinyinOutputFormat hanYuPinOutputFormat = new HanyuPinyinOutputFormat(); // 输出设置,大小写,音标方式等 if (1 == caseType) { hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); } else { hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE); } hanYuPinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); hanYuPinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH_V); StringBuffer pyStringBuffer = new StringBuffer(); String[] strString = new String[strChar.length]; try { for (int i = 0; i < strChar.length; i++) { if (Character.toString(strChar[i]).matches("[\\u4E00-\\u9FA5]+")) {//如果是汉字字符
//将汉字的几种全拼都存到strString数组中 strString = PinyinHelper.toHanyuPinyinStringArray(strChar[i], hanYuPinOutputFormat); pyStringBuffer.append(strString[0]);//取出该汉字全拼的第一种读音并连接到字符串pyStringBuffer后 } else {//如果不是汉字字符,直接取出字符并连接到字符串pyStringBuffer后 pyStringBuffer.append(Character.toString(strChar[i])); } } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return pyStringBuffer.toString(); }
MainActivity中
注释的代码是调用单个汉字转拼音的方法,为注释的是调用词语转拼音的方法
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView showText= (TextView) findViewById(R.id.showText); // String hanziString="人"; // String pinyinString= HanZiToPinYin.toPinYin(hanziString.charAt(1)); // showText.setText("汉字:"+hanziString+"\n"+"拼音:"+pinyinString); String s = HanZiToPinYin.getPinYinAllChar("大家好", 1); showText.setText(s); } }运行结果:
词语转拼音:
单个字转拼音: