`
空指针异常
  • 浏览: 22618 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Java汉字转拼音以及得到首字母通用方法

阅读更多
本文参考自http://www.oschina.net/code/snippet_175832_14587

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;

public class PinYinUtil {
	/**
	 * 将字符串中的中文转化为拼音,其他字符不变
	 * 
	 * @param inputString
	 * @return
	 */
	public static String getPingYin(String inputString) {
		HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
		format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		format.setVCharType(HanyuPinyinVCharType.WITH_V);
		char[] input = inputString.trim().toCharArray();
		String output = "";
		for (int i = 0; i < input.length; i++) {
			if (java.lang.Character.toString(input[i]).matches(
					"[\\u4E00-\\u9FA5]+")) {
				String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i],
						format);
				output += temp[0];
			} else
				output += java.lang.Character.toString(input[i]);
		}
		return output;
	}

	/**
	 * 获取汉字串拼音首字母,英文字符不变
	 * 
	 * @param chinese
	 *            汉字串
	 * @return 汉语拼音首字母
	 */
	public static String getFirstSpell(String chinese) {
		StringBuffer pybf = new StringBuffer();
		char[] arr = chinese.toCharArray();
		HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
		defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] > 128) {
				String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i],
						defaultFormat);
				if (temp != null) {
					pybf.append(temp[0].charAt(0));
				}

			} else {
				pybf.append(arr[i]);
			}
		}
		return pybf.toString().replaceAll("\\W", "").trim();
	}

	/**
	 * 获取汉字串拼音,英文字符不变
	 * 
	 * @param chinese
	 *            汉字串
	 * @return 汉语拼音
	 */
	public static String getFullSpell(String chinese) {
		StringBuffer pybf = new StringBuffer();
		char[] arr = chinese.toCharArray();
		HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
		defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] > 128) {
				pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i],
						defaultFormat)[0]);
			} else {
				pybf.append(arr[i]);
			}
		}
		return pybf.toString();
	}
}

分享到:
评论

相关推荐

    汉字转换拼音 java

    标签"汉字转换拼音java 汉字转换拼音首字母"暗示了另一个功能,即获取汉字的首字母。在某些场景下,我们可能只需要汉字的声母表示,如用于创建简化的关键词索引。Pinyin4j库同样支持获取拼音首字母,例如: ```java...

    java汉字转拼音字头-代码类(通用版)

    ### Java汉字转拼音字头-代码类(通用版) #### 概述 本文将详细介绍一个Java类`PinYin`,该类的功能是将输入的汉字转换为对应的拼音字头。这种转换在很多应用场景中非常有用,比如中文姓名首字母缩写、拼音排序等...

    汉语转拼音之pinyin4j 通用类

    总之,"汉语转拼音之pinyin4j 通用类" 是Java开发中处理汉字到拼音转换的一个强大工具,它提供了丰富的功能,易于集成,并能适应各种复杂的中文处理需求。无论是初学者还是经验丰富的开发者,都可以从中受益,提高...

    汉字得到拼音 java代码

    2. `getFirstLetter(String chinese)`:此方法可能返回汉字字符串的首字母,用于快速索引或关键词匹配。可以利用Pinyin4j的`PinyinHelper.toHanyuPinyinInitialsString(char)`方法。 接下来,`GB2Alpha.java`可能与...

    Java汉字转成汉语拼音工具类

    - `getFirstLettersUp`:此函数用于获取一个中文字符串的首字母大写形式,适用于拼音首字母提取等场景。 - `getFirstLettersLo`:此函数与`getFirstLettersUp`类似,但是返回的是首字母小写形式。 - `...

    javaSE及android汉字求索引还有iphone汉字求拼音求了拼音索引也就好了.pdf

    同时,文档还提到了如何在Java中获取汉字拼音首字母的方法,以及Android特有的汉字处理工具类HzPyUtil。 以下是一些关键知识点的详细说明: 1. GB2312编码标准与Unicode转换 GB2312编码是汉字编码的早期标准,它...

    一个文字转换拼音的实现方式,AndroidStudio工程

    一个文字转换拼音的实现方式,AndroidStudio工程,通过开源代码HanziToPinyin.java类实现,网上很通用的一种解决方案,记录一下,可以满足对翻译精度不高的工程要求,可以直接拷贝两个文件到工程中使用。

    B4a汉字转拼音全拼简拼带多音字【源代码加库】

    2. **全拼与简拼**:全拼是指汉字的完整拼音,如“中国”为“Zhongguo”,而简拼通常使用声母和韵母的首字母,如“中国”为“ZG”。库需要能够根据需求提供两种形式的拼音。 3. **多音字处理**:多音字是指一个汉字...

    PHP自定义函数获取汉字首字母的方法

    这个负数是根据GB2312编码表的位置计算出来的,用于映射到对应的拼音首字母。 4. **条件判断**: 根据计算得到的`$asc`值,使用一系列`if`语句进行判断,每个语句覆盖了一个字母范围。如果`$asc`落在某个范围之内...

    中国人常见三姓名拼音首字缩写txt

    标题“中国人常见三姓名拼音首字缩写txt”和描述“中国人常见姓名拼音首字缩写3字母 txt”指向的是一个包含中国常见姓名拼音首字母缩写的文本文件。这个文件很可能是为了方便在信息技术领域中处理大量个人数据时,...

    java代码书写规范

    - **通用规则**:所有命名应该使用标准的英文单词或缩写,避免使用拼音或拼音缩写,除非特指中文概念。名称应清晰、明确,长度适中,并尽可能使用全称。如果使用缩写,需进行注释说明。 - **工程名**:通常由团队...

    阿里云java规范

    4. **强制规定**:方法名、参数名、成员变量、局部变量都应统一使用`lowerCamelCase`风格,即首字母小写,其余单词首字母大写。 - **正例**:`localValue`、`getHttpMessage()`、`inputUserId` - **解析**:这种...

    阿里巴巴Java开发手册v1.2.0

    类名需要遵循大驼峰命名法,即首字母大写并连写,而方法名、参数名、成员变量等则使用小驼峰命名法,即首字母小写,后续单词首字母大写。常量的命名则需要全部使用大写字母,并且单词之间用下划线隔开。除此之外,还...

    Java开发手册

    - **方法名、参数名、成员变量、局部变量**: 统一使用`lowerCamelCase`风格,即首单词首字母小写,后跟其他单词的首字母大写。 - **抽象类**: 命名使用`Abstract`或`Base`开头。 - **异常类**: 命名使用`Exception`...

    JAVA开发规范文档.pdf

    1. **命名语言**:变量、类、接口和包名应使用英文,禁止使用拼音或汉字。 2. **大小写混合**:使用驼峰命名法,提高可读性。类和接口首字母大写,包名全小写。 3. **缩写**:尽量少用缩写,如果必须使用,采用常见...

    Pinyin4j简单使用教程.docx

    * @param isFullSpell 是否全拼,true:全拼,false:第一个汉字全拼(其它汉字取首字母) * @return 第一个拼音 */ public static String getFirstSpellPinYin(String src, boolean isFullSpell) { String ...

    大话JAVA性能优化试读样章高清PDF

    同时,禁止使用拼音与英文混合或直接使用中文命名,推荐使用英文单词命名,如使用ali、alibaba、taobao、cainiao、aliyun、youku、hangzhou等通用英文单词。 2. 类名命名:类名应该使用UpperCamelCase风格,即首...

    小项目的开发规范-java

    - **强制性规定**:方法名、参数名、成员变量、局部变量等应统一使用lowerCamelCase风格,即首字母小写,后续每个单词首字母大写。 - **正例**:`localValue`、`getHttpMessage()`、`inputUserId` - **原因**:...

    通用编码规范!!!!!

    - 变量名应使用英文或习惯性英文缩写,避免使用中文拼音或无意义的数字序列。 - 选择显浅短小的英文单词,如`item`、`list`、`data`等,以提高可读性。 - 使用匈牙利命名法或骆驼命名法,其中每个单词首字母大写...

Global site tag (gtag.js) - Google Analytics