将汉字转换为拼音

将汉字转换成拼音:

/**
1、实用类HanyuPinyinOutputFormat 设置输出格式
(1)、setCaseType设置输出拼音大小写。
--》HanyuPinyinCaseType.LOWERCASE  小写字母
--》HanyuPinyinCaseType.UPPERCASE  大写字母
(2)、setToneType设置拼音输出方式
--》HanyuPinyinToneType.WITHOUT_TONE	不输出声调
--》HanyuPinyinToneType.WITH_TONE_NUMBER	   用数字代表声调(1-4)
--》HanyuPinyinToneType.WITH_TONE_MARK	  用符号输出声调
(3)、setVCharType  设置字母样式
--》HanyuPinyinVCharType.WITH_V    'ü'用"v"代替 
--》HanyuPinyinVCharType.WITH_U_AND_COLON   'ü'不变
--》HanyuPinyinVCharType.WITH_U_UNICODE    'ü'用'u'代替 

2、PinyinHelper.toHanyuPinyinStringArray()转换成拼音。
*/


import java.util.Scanner;
import java.lang.Exception;
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;  

class ConverToPinYin 
{
	public static void main(String[] args) throws Exception
	{
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入汉字:");
		while(true)
		{
			String tarString = sc.next();
			if(tarString == null || tarString.length() == 0)
			{
				System.out.println("请重新输入汉字");
				continue;
			}
			
			if(tarString.matches("[\\u4E00-\\u9FA5]+"))
			{
				ConvertString(tarString);
				System.out.println();
			}
			else
				System.out.println("输入不合法,请重新输入。");
		}
	}

	private static void ConvertString(String src) throws Exception
	{
		char [] ch = src.toCharArray();

		HanyuPinyinOutputFormat  hf = new HanyuPinyinOutputFormat();
		//设置输出类型
		hf.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		//设置声调,如果使用WITH_TONE_MARK,则必须指定setVCharType为WITH_U_UNICODE,否则报错
		hf.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		//设置字母样式
		hf.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);

		for(char temch : ch)
		{
			//此处注意要点,有的字是多音字,所以一般我们不标声调就取第一个。
			String[] pinyinHead = PinyinHelper.toHanyuPinyinStringArray(temch,hf);
			for(String str:pinyinHead)
			{  
				System.out.print(str + "\t");
				break;
			}
		}
	}
}



pinyin.jar包下载地址:http://download.youkuaiyun.com/detail/anlidengshiwei/8449521点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值