`
276833190
  • 浏览: 14371 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

中文转 拼音字母、全拼 工具类

阅读更多

什么都不用说了  直接贴代码:

 

package test;

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;

/**
 * 中文转字母、拼音工具类<br><br>
 * 注意:依赖的jar包:pinyin4j-2.5.0.jar
 * 
 * @author wp Dec 9, 2015 6:40:59 PM
 *
 */
public class PinYinAPI {
	
	public static void main(String[] args) {
		String ss = PinYinAPI.getPinYinFull("吕氏春秋,我有一颗真挚的心,不要问我为什么?使用PinYin4j很好啊!");
		System.out.println(ss);
		String bb = PinYinAPI.getPinYinFirstChar("吕,我有一颗真挚的心,不要问我为什么?使用PinYin4j很好啊!");
		System.out.println(bb);
	}
	
	/**
	 * 得到中文的全拼
	 * @param str
	 * @return
	 */
	public static String getPinYinFull(String str){
		return getPinYin(str, true, ToneType.no_tone, true, false);
	}
	
	/**
	 * 得到中文的首字母(大写)
	 * @param str
	 * @return
	 */
	public static String getPinYinFirstChar(String str){
		return getPinYin(str, false, ToneType.no_tone, false, true);
	}
	
	/**
	 * 声调类型(no_tone:无声调、num_tone:数字声调、mark_tone:标记声调-中文)
	 *
	 */
	public static enum ToneType{
		no_tone, num_tone, mark_tone
	}
	private static HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
	
	/**
    * 提取每个汉字的全拼或者首字母
    * 
     * @param str 要转换的字符串
     * @param isFull 是否转全拼
     * @param tone 声调类型
     * @param isLow 是否转小写
     * @param isTrim 是否去除中间的空格
     * @return
     */
    public static String getPinYin(String str, boolean isFull, ToneType tone, boolean isLow, boolean isTrim) {
        if (isNull(str)) {
            return "";
        }
        if(isLow){
        	//转换大小写 (LOWERCASE:小写:默认格式、UPPERCASE:大写)
        	format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        }else{
        	format.setCaseType(HanyuPinyinCaseType.UPPERCASE);
        }
        if(ToneType.mark_tone.equals(tone)){
        	// WITH_TONE_NUMBER(以数字代替声调:默认格式)、WITHOUT_TONE (无声调)、WITH_TONE_MARK (有声调,编码必须使用WITH_U_UNICODE)
        	format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
        	// 以“吕”为例:WITH_U_AND_COLON(lu:3:默认格式)、WITH_U_UNICODE(lü3)、WITH_V(lv3)
        	format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
        } else if(ToneType.num_tone.equals(tone)){
        	format.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);
        	format.setVCharType(HanyuPinyinVCharType.WITH_V);
        } else{
        	format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        	format.setVCharType(HanyuPinyinVCharType.WITH_V);
        }
        
        StringBuilder sb = new StringBuilder();
        
        boolean flag = false;
        for (int i = 0; i < str.length(); i++) {
            char word = str.charAt(i);
            // 提取汉字的首字母、拼音
			try {
				String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(word, format);
//				pinyinArray = PinyinHelper.toTongyongPinyinStringArray(word);
//				pinyinArray = PinyinHelper.toYalePinyinStringArray(word);
//				pinyinArray = PinyinHelper.toWadeGilesPinyinStringArray(word);
			
//	            System.out.println(Arrays.toString(pinyinArray));
				
	            if (pinyin != null) {
	            	if(isFull){
	            		if(flag){
	            			sb.append(" "+pinyin[0]);
	            		}else{
	            			sb.append(pinyin[0]);
	            			flag = true;
	            		}
	            	}else{
	            		sb.append(pinyin[0].charAt(0));
	            	}
	            }else {
	                sb.append(word);
	                flag = false;
	            }
			} catch (Exception e) {
				e.printStackTrace();
				sb.append(word);
			}
        }
        return sb.toString();
    }

   /**
    * 判断字符串是否为空
    */

    private static boolean isNull(Object strData) {
        if (strData == null || String.valueOf(strData).trim().equals("")) {
            return true;
        }
        return false;
    }

	

}

 

分享到:
评论

相关推荐

    汉字转拼音声母首字母 dll

    1. PYDll.dll:这是核心的DLL文件,包含实现汉字转拼音声母首字母功能的函数和类。其他程序可以通过导入这个DLL并调用其中的接口来使用这个功能。 2. TestPYDll.exe:这可能是一个测试应用程序,用于验证和演示如何...

    汉字转拼音常用的工具类

    本文将详细介绍三个主要的工具类:`PinYinUtil.java`、`HanziToPinyin.java`以及`pinyin4j-2.5.0.jar`,它们都是用于实现汉字转拼音功能的实用工具。 首先,`PinYinUtil.java`是一个自定义的汉字转拼音工具类,通常...

    Java汉字转换为拼音工具类

    Java汉字转换为拼音工具类 汉字转换为拼音包括全拼、首字母缩写;全拼可计算出多音字。

    汉字转换拼音、拼音首字母

    汉字转换拼音、拼音首字母工具类!很好,很实用,可以把中文转换成汉语拼音全拼或者拼音首字母!

    java 取汉字拼音工具包

    1. **全拼与简拼**:工具包通常支持将汉字转换为完整的拼音(全拼)以及首字母缩写(简拼)。全拼提供了每个汉字的完整发音,而简拼则常用于快速输入和查找,如搜索引擎的关键词处理。 2. **声调处理**:汉语拼音有...

    汉字转拼音、首字母、多音字java

    总的来说,Java中的汉字转拼音、首字母获取以及多音字处理主要依赖于像`pinyin4j`这样的第三方库,它们提供了丰富的功能,使得开发者能方便地进行中文字符的拼音处理。在实际项目中,正确理解和运用这些工具,可以...

    汉字转拼音大小写全拼首字母pinyin4j-jar

    汉字转拼音是指将汉字转换为其对应的汉语拼音,包括全拼(每个汉字对应一个完整的拼音)、首字母(每个汉字对应拼音的首字母,常用于简拼)以及大小写形式。在pinyin4j-jar中,这些功能都得到了很好的支持。 pinyin...

    pinyin4j文字转拼音+简单工具类.rar

    总结起来,pinyin4j是一个强大的汉字转拼音工具,通过`PinYinUtil.java`这样的工具类,我们可以方便地将其整合进Java项目中,实现汉字的拼音化处理,无论是用于数据分析、关键词提取还是其他相关应用,都能极大地...

    java汉字转拼音字母项目例子_可直接运行

    Java汉字转拼音字母项目是一个实用的工具,它允许开发者将汉字转换为对应的拼音表示,这对于中文处理、搜索引擎优化(SEO)以及语音合成等场景非常有帮助。本项目提供了可以直接运行的示例,使得用户能够快速理解和...

    Java版汉字转拼音,全拼,简拼

    本文将详细讲解如何实现Java版的汉字转拼音,包括全拼和简拼。 首先,我们需要理解汉字转拼音的基本原理。汉字与拼音之间的转换主要依赖于汉字的区位码和音标信息。区位码是每个汉字在计算机中存储的编码位置,而...

    汉字和拼音转换jar和工具类

    2. 多个汉字转拼音:对于输入的一串汉字,工具类可以一次性转换成拼音字符串,如“北京欢迎你”转换为“běi jīng huān yíng nǐ”。 3. 声母、韵母和声调的处理:在某些情况下,可能需要单独获取汉字的声母、...

    java汉字转拼音工具类

    Java中的汉字转拼音工具类主要用于将汉字转换为其对应的汉语拼音,尤其在处理中文数据时非常有用,例如在生成英文URL、关键词分析或者搜索索引时。这类工具通常基于开源库,如Pinyin4j,HanyuPinyin,或者自定义实现...

    php汉字转拼音得到首字母的类

    在PHP编程中,有时我们..."php汉字转拼音得到首字母的类"是一个实用的工具,对于处理中文数据的项目来说非常有价值。通过理解和运用这类工具,开发者可以更好地应对中文环境下的各种挑战,提高代码的效率和用户体验。

    实用汉字转拼音 V4.6

    《实用汉字转拼音 V4.6》是一款专为汉字与拼音转换设计的高效软件,它基于标准的汉字拼音库,能够将简体汉字精准地转化为全拼拼音。这款工具不仅功能强大,而且易于操作,为用户提供了多种自定义选项,满足了不同...

    汉字转拼音的示例及所需jar包

    在`PinyinUtil.java`文件中,通常会定义一个工具类,包含静态方法用于执行汉字转拼音的操作。以下是一个简单的`PinyinUtil`类的实现: ```java import net.sourceforge.pinyin4j.PinyinHelper; import ...

    汉字转拼音_含源码

    总的来说,"汉字转拼音_含源码"这个工具提供了从基础的汉字转拼音功能到深入的编程学习资源,无论是普通用户还是开发者,都能从中受益。通过研究源代码,开发者可以提升自己的C#编程技能,并了解汉字转拼音的具体...

    提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

    本文将深入探讨如何实现一个基于JavaFX的模糊查询系统,该系统支持汉字、拼音以及拼音首字母的左侧匹配。这个功能对于提高用户在大量中文数据中查找信息的效率至关重要。 首先,我们需要了解JavaFX这一强大的Java...

    汉字转拼音(多音),汉字取首字母,汉字简繁体转换

    这里提到的“汉字转拼音(多音),汉字取首字母,汉字简繁体转换”是中文处理技术的三个核心部分,让我们一一进行深入探讨。 首先,汉字转拼音,也就是“hanzi2pinyin”,是指将汉字转化为对应的汉语拼音。在中文...

    pb12.5汉字转拼音码

    总的来说,PB12.5汉字转拼音码技术是PowerBuilder开发中的一个实用工具,它结合了字符串处理、编码转换以及特定的汉字拼音算法,为开发者提供了处理汉字与拼音之间转换的能力,从而在多个应用场景中提升程序的功能性...

    取字 每个汉字的拼音首字母

    3. **输入法优化**:现代中文输入法往往支持全拼和简拼输入,其中简拼就是只输入汉字拼音的首字母,这依赖于能够准确识别每个汉字的拼音首字母。 4. **中文信息检索**:在搜索引擎或数据库中,将汉字转换为拼音首...

Global site tag (gtag.js) - Google Analytics