`

pinyin4j工具类(转)

阅读更多

pinyin4j常用方式

文章分类:Java编程

转载:http://liuzidong.iteye.com/blog/787582
pinyin4j的主页:http://pinyin4j.sourceforge.net/

pinyin4j能够根据中文字符获取其对应的拼音,而且拼音的格式可以定制。

pinyin4j是一个支持将中文转换到拼音的Java开源类库。

Java代码 复制代码
  1. import net.sourceforge.pinyin4j.PinyinHelper;   
  2. import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;   
  3. import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;   
  4. import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;   
  5. import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;   
  6. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;   
  7.   
  8. public class Pinyin4jUtil {   
  9.     /**  
  10.      * 将汉字转换为全拼  
  11.      *   
  12.      * @param src  
  13.      * @return String  
  14.      */  
  15.     public static String getPinYin(String src) {   
  16.         char[] t1 = null;   
  17.         t1 = src.toCharArray();   
  18.         // System.out.println(t1.length);   
  19.         String[] t2 = new String[t1.length];   
  20.         // System.out.println(t2.length);   
  21.         // 设置汉字拼音输出的格式   
  22.         HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();   
  23.         t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);   
  24.         t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);   
  25.         t3.setVCharType(HanyuPinyinVCharType.WITH_V);   
  26.         String t4 = "";   
  27.         int t0 = t1.length;   
  28.         try {   
  29.             for (int i = 0; i < t0; i++) {   
  30.                 // 判断能否为汉字字符   
  31.                 // System.out.println(t1[i]);   
  32.                 if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {   
  33.                     t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);// 将汉字的几种全拼都存到t2数组中   
  34.                     t4 += t2[0];// 取出该汉字全拼的第一种读音并连接到字符串t4后   
  35.                 } else {   
  36.                     // 如果不是汉字字符,间接取出字符并连接到字符串t4后   
  37.                     t4 += Character.toString(t1[i]);   
  38.                 }   
  39.             }   
  40.         } catch (BadHanyuPinyinOutputFormatCombination e) {   
  41.             e.printStackTrace();   
  42.         }   
  43.         return t4;   
  44.     }   
  45.   
  46.     /**  
  47.      * 提取每个汉字的首字母  
  48.      *   
  49.      * @param str  
  50.      * @return String  
  51.      */  
  52.     public static String getPinYinHeadChar(String str) {   
  53.         String convert = "";   
  54.         for (int j = 0; j < str.length(); j++) {   
  55.             char word = str.charAt(j);   
  56.             // 提取汉字的首字母   
  57.             String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);   
  58.             if (pinyinArray != null) {   
  59.                 convert += pinyinArray[0].charAt(0);   
  60.             } else {   
  61.                 convert += word;   
  62.             }   
  63.         }   
  64.         return convert;   
  65.     }   
  66.   
  67.     /**  
  68.      * 将字符串转换成ASCII码  
  69.      *   
  70.      * @param cnStr  
  71.      * @return String  
  72.      */  
  73.     public static String getCnASCII(String cnStr) {   
  74.         StringBuffer strBuf = new StringBuffer();   
  75.         // 将字符串转换成字节序列   
  76.         byte[] bGBK = cnStr.getBytes();   
  77.         for (int i = 0; i < bGBK.length; i++) {   
  78.             // System.out.println(Integer.toHexString(bGBK[i] & 0xff));   
  79.             // 将每个字符转换成ASCII码   
  80.             strBuf.append(Integer.toHexString(bGBK[i] & 0xff));   
  81.         }   
  82.         return strBuf.toString();   
  83.     }   
  84.   
  85.     public static void main(String[] args) {   
  86.         String cnStr = "中国";   
  87.         System.out.println(getPinYin(cnStr));   
  88.         System.out.println(getPinYinHeadChar(cnStr));   
  89.         System.out.println(getCnASCII(cnStr));   
  90.     }   
  91. }  
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 Pinyin4jUtil {
	/**
	 * 将汉字转换为全拼
	 * 
	 * @param src
	 * @return String
	 */
	public static String getPinYin(String src) {
		char[] t1 = null;
		t1 = src.toCharArray();
		// System.out.println(t1.length);
		String[] t2 = new String[t1.length];
		// System.out.println(t2.length);
		// 设置汉字拼音输出的格式
		HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
		t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		t3.setVCharType(HanyuPinyinVCharType.WITH_V);
		String t4 = "";
		int t0 = t1.length;
		try {
			for (int i = 0; i < t0; i++) {
				// 判断能否为汉字字符
				// System.out.println(t1[i]);
				if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
					t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);// 将汉字的几种全拼都存到t2数组中
					t4 += t2[0];// 取出该汉字全拼的第一种读音并连接到字符串t4后
				} else {
					// 如果不是汉字字符,间接取出字符并连接到字符串t4后
					t4 += Character.toString(t1[i]);
				}
			}
		} catch (BadHanyuPinyinOutputFormatCombination e) {
			e.printStackTrace();
		}
		return t4;
	}

	/**
	 * 提取每个汉字的首字母
	 * 
	 * @param str
	 * @return String
	 */
	public static String getPinYinHeadChar(String str) {
		String convert = "";
		for (int j = 0; j < str.length(); j++) {
			char word = str.charAt(j);
			// 提取汉字的首字母
			String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
			if (pinyinArray != null) {
				convert += pinyinArray[0].charAt(0);
			} else {
				convert += word;
			}
		}
		return convert;
	}

	/**
	 * 将字符串转换成ASCII码
	 * 
	 * @param cnStr
	 * @return String
	 */
	public static String getCnASCII(String cnStr) {
		StringBuffer strBuf = new StringBuffer();
		// 将字符串转换成字节序列
		byte[] bGBK = cnStr.getBytes();
		for (int i = 0; i < bGBK.length; i++) {
			// System.out.println(Integer.toHexString(bGBK[i] & 0xff));
			// 将每个字符转换成ASCII码
			strBuf.append(Integer.toHexString(bGBK[i] & 0xff));
		}
		return strBuf.toString();
	}

	public static void main(String[] args) {
		String cnStr = "中国";
		System.out.println(getPinYin(cnStr));
		System.out.println(getPinYinHeadChar(cnStr));
		System.out.println(getCnASCII(cnStr));
	}
}
分享到:
评论

相关推荐

    pinYin4J工具类

    《pinYin4J工具类在Java开发中的应用与实践》 在Java开发过程中,处理汉字拼音的需求时常出现,例如搜索引擎的关键词匹配、拼音排序、中文输入法的提示等。这时,一个高效的拼音处理工具类就显得尤为重要。pinYin4J...

    Pinyin4j工具类

    将字符串转换成拼音数组;将字符串转换成拼音数组;将字符串转换成拼音数组;将单个字符转换成拼音;...本工具类需要pinyin4j.jar包。jar包地址-&gt;https://download.csdn.net/download/lihaibo858/10134053

    pinyin4j工具类和jar包

    Pinyin4j的基本用法 1. 简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”...

    pinyin4j工具类

    pinyin4j工具类 pinyi4j使用方法 使用效果: 我de 心——Wde X 王二小——wangerxiao a王二小——awangerxiao 0王0*#$;,,二小——0wang0*#$;,,erxiao 王二小——939(转化为手机键盘数字)

    中文转拼音工具类,pinyin4j-2.5.0.jar 适用于地址人名

    《中文转拼音工具类——pinyin4j-2.5.0.jar 在处理地址与人名中的应用》 在处理中文数据时,有时我们需要将汉字转换为拼音,以便进行搜索、排序或者国际化处理。这时,一个高效且准确的中文转拼音工具显得尤为重要...

    pinyin4j.zip pinyin4j.jar

    总的来说,Pinyin4j是一个功能强大且易于使用的汉字转拼音工具,无论是Java还是Android开发者,都能从中受益。通过它的帮助,我们可以更便捷地进行汉字与拼音之间的转换,进一步推动中文信息处理技术的发展。在实际...

    汉语转拼音之pinyin4j 通用类

    4. **通用类PinyinUtil**:在提供的压缩文件中,我们看到一个名为`PinyinUtil.java`的文件,这通常是一个工具类,封装了Pinyin4j的核心功能,如汉字到拼音的转换方法。开发者可以通过调用这个类的方法,快速在自己的...

    汉语转换成拼音的jar包pinyin4j-2.5.0版本

    在处理大量汉字文本时,`pinyin4j`的高效性能和准确度使得它成为Java开发者的首选工具。无论是进行文本分析,还是创建具有拼音功能的应用,`pinyin4j`都能提供坚实的支持。在实际开发中,结合其他文本处理技术,如...

    pinyin4j-2.5.0.jar 下载 java汉字转拼音 jar包 附带超级简单小dome

    《pinyin4j-2.5.0.jar:Java实现汉字转拼音的高效工具》 在信息化时代,处理中文字符成为许多开发者的必备技能。在Java编程语言中,pinyin4j是一个非常实用的库,它能将汉字转换为拼音,从而解决了在处理汉字排序、...

    pinyin4j-2.5.0

    `pinyin4j`能够识别并提供这些多音字的所有读音,使得在处理这类问题时更为方便。 2. **拼音格式化**:`pinyin4j`允许开发者自定义拼音输出的格式。例如,你可以选择是否保留声调,或者使用数字表示声调(如“ma1”...

    pinyin4j工具包

    《pinyin4j工具包:高效处理中文拼音的利器》 在中文信息处理领域,将汉字转换为拼音是一项基础且重要的任务。pinyin4j工具包正是为了解决这一问题而设计的,它是一个功能强大的Java库,专门用于处理中文字符并将其...

    pinyin4j-2.5.0.jar下载

    "pinyin4j-2.5.0.jar"就是这样一款高效且易用的工具,它专为Java和Kotlin设计,提供了强大的汉字转拼音功能。 pinyin4j是一款开源的Java库,由Barry De Zwart开发,其主要功能是将汉字转换为汉语拼音。这个库不仅...

    pinyin4j-2.5.0.zip

    这样,你就可以在SpringBoot的控制器、服务层或者模型类中,灵活运用pinyin4j提供的API进行汉字转拼音操作。 除了基本的汉字转拼音,pinyin4j还可以帮助开发者实现一些高级功能。例如,你可以利用它来实现基于拼音...

    net.sourceforge.pinyin4j.zip

    《Pinyin4j工具包详解:汉字转拼音的利器》 在处理中文数据时,我们经常需要将汉字转换为拼音,以便进行各种处理,如排序、搜索或建立索引。这时,一个强大的工具包——net.sourceforge.pinyin4j就显得尤为重要。这...

    pinyin4j(解决多音字问题源码)

    1. 引入pinyin4j库:在Java项目中,可以通过Maven或Gradle等构建工具引入pinyin4j的依赖。 2. 创建实例:创建PinyinHelper或HanyuPinyinOutputFormat类的实例,设置拼音输出格式,如大小写、是否包含声调等。 3. ...

    pinyin4j 开发jar包

    4. 辅助功能:除了基本的汉字转拼音,pinyin4j还提供了诸如拼音比较、拼音排序等辅助工具,方便开发者在处理拼音数据时进行操作。 三、使用方法 1. 引入库:首先,需要在项目中引入pinyin4j的JAR包,可以通过Maven...

    pinyin4j-2.5.0.jar

    《pinyin4j-2.5.0.jar与PinyinUtils.java:Java汉字转拼音的高效工具》 在Java开发中,处理汉字转拼音的需求时常出现,例如在搜索引擎优化、关键词提取、排序等方面。这时,一个高效且易用的库就显得尤为重要。...

    将简体中文和繁体中文转换拼音的jar包 pinyin4j-2.5.0.jar

    对于非Maven项目,只需将`pinyin4j-2.5.0.jar`复制到项目的lib目录下,并确保构建工具能正确识别。 2. **基本用法** pinyin4j的核心类是`com.belerweb.pinyin4j.PinyinHelper`,通过这个类提供的静态方法,我们...

    pinyin4j-2.5.1.jar

    pinyin4j是一个专门用于Java平台的中文字符转拼音的开源库,它的版本为2.5.1,是开发者处理中文字符转换为拼音的重要工具。该库由net.sourceforge.pinyin4j包提供,包含了丰富的类和方法,能够帮助开发者方便地获取...

    使用pinyin4j将中文转换为拼音

    引入pinyin4j库的方式通常是将`pinyin4j-2.5.0.jar`文件添加到项目的类路径中。在现代的Java开发环境中,这可以通过Maven或Gradle的依赖管理来实现。例如,在Maven的pom.xml文件中添加如下依赖: ```xml ...

Global site tag (gtag.js) - Google Analytics