android中汉字转为拼音

汉语转为拼音

  首先要先导入架包: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);
    }
}
运行结果:

词语转拼音:


单个字转拼音:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperMonsterH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值