java汉字转拼音

2025-11-07 04:01:38

1、public class HpTest {

public static void main(String[] args) {

//得到汉字转化的拼音

String[] pinyinArray =PinyinHelper.toHanyuPinyinStringArray('转');

//一个汉字可能有多个拼音所有需要循环

for(int i = 0; i < pinyinArray.length; ++i)

{

System.out.println(pinyinArray[i]);

}

}

2、多个字符的输出

工具类代码

代码:

class Hanyu

{

private HanyuPinyinOutputFormat format = null;

private String[] pinyin;

public Hanyu()

{

format = new HanyuPinyinOutputFormat();

format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

pinyin = null;

}

//转换单个字符

public String getCharacterPinYin(char c)

{

try

{

pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format);

}

catch(BadHanyuPinyinOutputFormatCombination e)

{

e.printStackTrace();

}

// 如果c不是汉字,toHanyuPinyinStringArray会返回null

if(pinyin == null) return null;

// 只取一个发音,如果是多音字,仅取第一个发音

return pinyin[0];

}

// 转换一个字符串

public String getStringPinYin(String str) {

StringBuilder sb = new StringBuilder();

String tempPinyin = null;

for (int i = 0; i < str.length(); ++i) {

tempPinyin = getCharacterPinYin(str.charAt(i));

if (tempPinyin == null) {

// 如果str.charAt(i)非汉字,则保持原样

sb.append(str.charAt(i));

} else {

sb.append(tempPinyin);

}

}

return sb.toString();

}

}

3、测试类代码:

public class HpTest {

public static void main(String[] args) {

Hanyu hanyu = new Hanyu();

// 中英文混合的一段文字

String str = "荆,c溪,白,石,出,";

String strPinyin = hanyu.getStringPinYin(str);

System.out.println(strPinyin);

}

}

输出结果如下图:

java汉字转拼音

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢