精华内容
下载资源
问答
  • 安卓手机-汉字转拼音

    2019-01-01 09:19:47
    用Hbuilder打包做的一个汉字转拼音app 应用大小2.68M 不要求系统敏感权限
  • 中文转拼音

    2015-01-14 10:51:38
    比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译...
  • 汉字转无调华拼软件是一款可以让你轻松把汉字转化为华语拼音的软件,利用这种华语拼音文字,不需要懂任何中文输入法,不需要输入中文字就可以在网络上留言、聊天、发送电邮,也可以在手机上发送短信,而且该软件能...
  • 包地址 ...path=%2F%E5%AD%A6%E4%B9%A0 Pinyin4j的基本用法 1.简单介绍 ...比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cm...
    包地址
     
    1. 简单介绍
    有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询曹孟德,就可以输入cmd,即曹孟德三个汉字的拼音caomengde各字的首字母。但是怎样才能将曹孟德翻译成caomengde呢?很简单的办法就是建立一个大的对照表(比如用关联容器Map),比如<cao><” meng><” de>但这样的做法,需要维护好一个比较大的对照表,同时一个汉字可能有多个发音,也就是说Map这样的容器时不行的,因为其<key,value>必须是一一对应的。在C++中可以用STL里面的multimap来解决这个问题,但Java中没有类似multimap这样的东西,除非自己实现一个。
     
    Pinyin4j就是为了解决类似这样的问题的。它是sourceforge.net上的一个开源项目,功能非常强大:
    支持同一汉字有多个发音
    还支持拼音的格式化输出,比如第几声之类的,
    同时支持简体中文、繁体中文转换为拼音使用起来也非常简单。下面是其官方网址,其中提供了下载:
     
    2. 基本用法:
    通常情况下,只需要用到其中的PinyinHelper类中的静态方法toHanyuPinyinStringArray就可以了,比如:
    String[] pinyinArray =PinyinHelper.toHanyuPinyinStringArray('');
    for(int i = 0; i < pinyinArray.length; ++i)
    {
    System.out.println(pinyinArray[i]);
    }
    就会输出:
    dan1
    chan2
    shan4
    这三种发音,后面的数字代表第几声。可以看到静态方法toHanyuPinyinStringArray返回的数据类型是一个String数组,它用来接收一个汉字的多个发音,如果toHanyuPinyinStringArray中的参数不是汉字,那么它会返回null
     
    3.格式支持
    Pinyin4j支持拼音输出的格式化,比如,可以输出为huanghuang2huáng等等,下面的代码就似是输出huáng的示例:
    HanyuPinyinOutputFormat format= new HanyuPinyinOutputFormat();
    format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
    format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
     
    String[] pinyinArray = null;
    try
    {
    pinyinArray = PinyinHelper.toHanyuPinyinStringArray('', format);
    }
    catch(BadHanyuPinyinOutputFormatCombination e)
    {
    e.printStackTrace();
    }
    for(int i = 0; i < pinyinArray.length; ++i)
    {
    System.out.println(pinyinArray[i]);
    }
    此外,还支持大小写转换、ü等等。详细情况,可以查看Pinyin4j自带的文档。
     
    4.实际示例代码
    如果我们要将一段文字中的汉字全部转换成不带音调的拼音输出,而这段文字中又可能包含阿拉伯数字、英文、标点符号等等。如果完全靠自己写代码进行转换,那是非常麻烦的,其中一个首先就要区别,这段文字中那些是汉字,那些是非汉字。有了Pinyin4j,这个问题就不再困难了,因为对于非汉字,Pinyin4j会自动输出null。参考下面的示例代码:
    importnet.sourceforge.pinyin4j.*;
    importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
    importnet.sourceforge.pinyin4j.format.HanyuPinyinToneType;
    importnet.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
     
    public class Chinese2PY
    {
    public static void main(String[] args)
    {
    Hanyu hanyu = new Hanyu();
    // 中英文混合的一段文字
    String str = "荆溪白石出,Hello 天寒红叶稀。Android 山路元无雨,What's up? 空翠湿人衣。";
    String strPinyin = hanyu.getStringPinYin(str);
    System.out.println(strPinyin);
    }
    }
     
    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();
    }
    }

    转载于:https://www.cnblogs.com/super-admin/p/8303633.html

    展开全文
  • 例如:在Android手机应用开发中,要查询联系人的姓名,通常都是用拼音进行查询的。 Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。 主要的功能有: - 支持同一汉字有多个发音 ...

    将汉字转换为拼音在Android开发中是个很常见的问题。例如:在Android手机应用开发中,要查询联系人的姓名,通常都是用拼音进行查询的。
    Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。
    主要的功能有:
    - 支持同一汉字有多个发音
    - 支持拼音的格式化输出,比如第几声之类的
    - 支持简体中文、繁体中文转换为拼音
    首先,在Android Studio中的使用应该将pinyin4j的包放入到libs文件夹下,然后在需要使用到pinyin4j时就在类中import要使用的相应类即可。
    这里写图片描述
    检查在build.gradle中是否已经导入PinYin4j.jar的存放路径
    这里写图片描述
    1.基本用法(单个汉字转拼音):
    PinyinHelper类中的静态方法toHanyuPinyinStringArray返回的数据类型是一个String数组,它用来接收一个汉字的多个发音,如果toHanyuPinyinStringArray中的参数不是汉字,那么它会返回null。

    String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray('行');
            for (int i = 0; i < pinyinArray.length; ++i)
            {
                Log.d("TAG", pinyinArray[i]);
            }

    结果输出:
    这里写图片描述
    可以看到“行”字有这么5种发音,后面的数字代表第几声。
    2.格式支持
    Pinyin4j支持拼音输出的格式化,比如,“行”字出了像前面输出“xing2”,也可以输出为“xing”或者“xíng”之类的其他格式。

    HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
            format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
            format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
            String[] pinyinArray = null;
            try {
                pinyinArray = PinyinHelper.toHanyuPinyinStringArray('行', format);
            } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
                badHanyuPinyinOutputFormatCombination.printStackTrace();
            }
            for (int i = 0; i < pinyinArray.length; ++i) {
                Log.d("TAG", pinyinArray[i]);
            }

    效果图如下:
    这里写图片描述
    其中使用HanyuPinyinOutputFormat来格式化返回拼音的格式还有例如以下几种:
    - WITH_V:用v表示ü (nv)
    - WITH_U_AND_COLON:用”u:”表示ü (nu:)
    - WITH_U_UNICODE:直接用ü (nü)
    –>使用:format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
    - UPPERCASE:大写 (XING)
    - LOWERCASE:小写 (xing)
    –>使用:format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
    - WITHOUT_TONE:无音标 (xing)
    - WITH_TONE_NUMBER:1-4数字表示英标 (xing2)
    - WITH_TONE_MARK:直接用音标符
    –>使用:format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
    虽然pinyin4j很好用,但是还是有局限的。以上代码只能获取单个汉字的拼音,但是不能获取一个包含多音字的词的拼音。例如“重庆”,无法判断到底是“chongqing”还是“zhongqing”,pinyin4j不能通过上下文来判断多音字的读音。
      所以,在获取一个包含多音字的词语的读音,可以返回一个列表,正确的读音只能是人工判断选择。
    3.示例代码

    package com.adan.pinyindome;
    
    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;
    
    /**
     * @author: xiaolijuan
     * @description:
     * @projectName: PinyinDome
     * @date: 2016-02-18
     * @time: 10:13
     */
    public class PinyinUtils {
    
        /**
         * 获得汉语拼音首字母
         *
         * @param chines 汉字
         * @return
         */
        public static String getAlpha(String chines) {
            String pinyinName = "";
            char[] nameChar = chines.toCharArray();
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            for (int i = 0; i < nameChar.length; i++) {
                if (nameChar[i] > 128) {
                    try {
                        pinyinName += PinyinHelper.toHanyuPinyinStringArray(
                                nameChar[i], defaultFormat)[0].charAt(0);
                    } catch (BadHanyuPinyinOutputFormatCombination e) {
                        e.printStackTrace();
                    }
                } else {
                    pinyinName += nameChar[i];
                }
            }
            return pinyinName;
        }
    
        /**
         * 将字符串中的中文转化为拼音,英文字符不变
         *
         * @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);
            String output = "";
            if (inputString != null && inputString.length() > 0
                    && !"null".equals(inputString)) {
                char[] input = inputString.trim().toCharArray();
                try {
                    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]);
                    }
                } catch (BadHanyuPinyinOutputFormatCombination e) {
                    e.printStackTrace();
                }
            } else {
                return "*";
            }
            return output;
        }
    
        /**
         * 汉字转换位汉语拼音首字母,英文字符不变
         *
         * @param chines 汉字
         * @return 拼音
         */
        public static String converterToFirstSpell(String chines) {
            String pinyinName = "";
            char[] nameChar = chines.toCharArray();
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            for (int i = 0; i < nameChar.length; i++) {
                if (nameChar[i] > 128) {
                    try {
                        pinyinName += PinyinHelper.toHanyuPinyinStringArray(
                                nameChar[i], defaultFormat)[0].charAt(0);
                    } catch (BadHanyuPinyinOutputFormatCombination e) {
                        e.printStackTrace();
                    }
                } else {
                    pinyinName += nameChar[i];
                }
            }
            return pinyinName;
        }
    
    }
    

    在实际开发中如果我们要将一段文字中的汉字全部转换成不带音调的拼音输出,而这段文字中又可能包含阿拉伯数字、英文、标点符号等等。如果完全靠自己写代码进行转换,那是非常麻烦的,其中一个首先就要区别,这段文字中那些是汉字,那些是非汉字。有了Pinyin4j,这个问题就不再困难了

    String strs = PinyinUtils.getPingYin("新年好!Hello,新年大家都过得开心吧?哈哈,我是做Android开发哒,what's this?");
            TextView textView = (TextView) findViewById(R.id.text);
            textView.setText(strs);
            Log.d("TAG", strs);

    结果输出:
    xinnianhao!Hello,xinniandajiadouguodekaixinba?haha,woshizuoAndroidkaifada,what’s this?
    Dome下载
    下载pinyin4j-2.5.0.jar

    展开全文
  • java 中文转拼音之pinyin4j

    千次阅读 2014-06-24 13:02:57
    比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。 比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译...
    一、简单介绍
    
    有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。
    比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字的拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译成“caomengde”呢?
    很简单的办法就是建立一个大的对照表(比如用关联容器Map),比如<”曹”,”cao”>,<” 孟”,”meng”>,<” 德”,”de”>…但这样的做法,
    需要维护好一个比较大的对照表,同时一个汉字可能有多个发音,也就是说Map这样的容器时不行的,因为其<key,value>必须是一一对应的。
    在C++中可以用STL里面的multimap来解决这个问题,但Java中没有类似multimap这样的东西,除非自己实现一个。


    Pinyin4j就是为了解决类似这样的问题的。它是sourceforge.net上的一个开源项目,功能非常强大:
    + 支持同一汉字有多个发音
    + 还支持拼音的格式化输出,比如第几声之类的,
    + 同时支持简体中文、繁体中文转换为拼音…使用起来也非常简单。


    pinyin4j的官方下载地址http://sourceforge.net/projects/pinyin4j/files/,目前最新的版本是2.5.0
    下载解压后的目录结构及说明如下
    (1)     doc : pinyin4j的api文档
    (2)     lib : pinyin4j的jar包
    (3)     src : pinyin4j的源代码
    (4)     CHANGELOG.txt : pinyin4j的版本更新日志
    (5)     COPYING.txt : LICENSE说明
    (6)     README.txt : pinyin4j的概要介绍


    二、局限性:
    虽然pinyin4j很好用,但是还是有局限的。以下代码只能获取单个汉字的拼音,但是不能获取一个包含多音字的词的拼音。
    例如“重庆”,无法判断到底是“chongqing”还是“zhongqing”,pinyin4j不能通过上下文来判断多音字的读音。
    所以,在获取一个包含多音字的词语的读音,可以返回一个列表,正确的读音只能是人工判断选择。


    三、格式控制:
    HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();   
      
    // UPPERCASE:大写  (ZHONG)  
    // LOWERCASE:小写  (zhong)  
    format.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
      
    // WITHOUT_TONE:无音标  (zhong)  
    // WITH_TONE_NUMBER:1-4数字表示英标  (zhong4)  
    // WITH_TONE_MARK:直接用音标符(必须WITH_U_UNICODE否则异常)  (zhòng)  
    format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);  
      
    // WITH_V:用v表示ü  (nv)  
    // WITH_U_AND_COLON:用"u:"表示ü  (nu:)  
    // WITH_U_UNICODE:直接用ü (nü)  
    format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);  
              
    String[] pinyin = PinyinHelper.toHanyuPinyinStringArray('重', format); 


    四、代码


    public class PinYin4JTest {

     public static String getPinYin(String inputString) {  
              
           HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();  
           format.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
           format.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);  
           format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);  
     
           char[] input = inputString.trim().toCharArray();  
           StringBuffer output = new StringBuffer("");  
     
           try {  
               for (int i = 0; i < input.length; i++) {  
                   if (Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {  
                       String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);  
                       output.append(temp[0]);  
                       output.append(" ");  
                   } else  
                       output.append(Character.toString(input[i]));  
               }  
           } catch (BadHanyuPinyinOutputFormatCombination e) {  
               e.printStackTrace();  
           }  
           return output.toString();  
       } 


    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println(getPinYin("中华人民共和国"));
    }


    }


    注:pinyin4j支持多种拼音方式
    Hanyu Pinyin 汉语拼音
    Tongyong Pinyin 通用拼音
    Wade-Giles 威妥玛拼音
    MPS2 (Mandarin Phonetic Symbols II) 国语注音符号第二式
    Yale Romanization 耶鲁罗马化拼音
    Gwoyeu Romatzyh国语国语罗马化拼音
        各种拼音说明
            Yale Pinyin是在第二次世界大战期间由美国军方发明的编码系统,主要为了让在中国地区作战的美军士兵能够快速地熟悉汉语发音,
    能够向当地人请求帮助,可以说这是一个速成教材,它的目的甚至不是用来互相交流而是使士兵在发音时不会被中国人听错就可以了。
            Gwoyeu Romatzyh:即国语罗马字,它是由林语堂提议建立的,在1928年由国民政府大学堂颁布推行。在中国的台湾省这一编码体系得到了保留,
    但是它就像 Yale一样现在几乎很少有人使用,在1986年,国语罗马字被国语注音符号第二式(MPSII)所取代,
    在2002年,又被通用拼音(Tongyong Pinyin)取代,成为台湾今天正式的官方汉语音译编码体系。
            威妥玛拼音,习惯称作威妥玛拼法或威玛式拼音、韦氏拼音、威翟式拼音,是一套用于拼写中文普通话的罗马拼音系统。
    19世纪中叶由英国人威妥玛(Thomas Francis Wade)发明,后由翟理斯(Herbert Allen Giles)完成修订,并编入其所撰写的汉英字典。
    展开全文
  • 1. 简单介绍 有时候,需要将汉字编程对应...比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字拼音“caomengd

    原文地址:http://blog.csdn.net/pathuang68/article/details/6692882#comments

    1.     简单介绍

    有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字的拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译成“caomengde”呢?很简单的办法就是建立一个大的对照表(比如用关联容器Map),比如<”曹”,”cao”>,<” 孟”,”meng”>,<” 德”,”de”>…但这样的做法,需要维护好一个比较大的对照表,同时一个汉字可能有多个发音,也就是说Map这样的容器时不行的,因为其<key,value>必须是一一对应的。在C++中可以用STL里面的multimap来解决这个问题,但Java中没有类似multimap这样的东西,除非自己实现一个。

    Pinyin4j就是为了解决类似这样的问题的。它是sourceforge.net上的一个开源项目,功能非常强大:

    + 支持同一汉字有多个发音

    + 还支持拼音的格式化输出,比如第几声之类的,

    + 同时支持简体中文、繁体中文转换为拼音…使用起来也非常简单。下面是其官方网址,其中提供了下载:

    http://pinyin4j.sourceforge.net/

     

    2.     基本用法:

    通常情况下,只需要用到其中的PinyinHelper类中的静态方法toHanyuPinyinStringArray就可以了,比如:

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

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

    {

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

    }

    就会输出:

    dan1

    chan2

    shan4

    这三种发音,后面的数字代表第几声。可以看到静态方法toHanyuPinyinStringArray返回的数据类型是一个String数组,它用来接收一个汉字的多个发音,如果toHanyuPinyinStringArray中的参数不是汉字,那么它会返回null。

    3.    格式支持

    Pinyin4j支持拼音输出的格式化,比如,“黄”可以输出为“huang”、“huang2”、“huáng”等等,下面的代码就似是输出“huáng”的示例:

    HanyuPinyinOutputFormat format= new HanyuPinyinOutputFormat();

    format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);

    format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);

                      

    String[] pinyinArray = null;

    try

    {

             pinyinArray = PinyinHelper.toHanyuPinyinStringArray('黄', format);

    }

    catch(BadHanyuPinyinOutputFormatCombination e)

    {

             e.printStackTrace();

    }

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

    {

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

    }

    此外,还支持大小写转换、ü等等。详细情况,可以查看Pinyin4j自带的文档。

    4.    实际示例代码

    如果我们要将一段文字中的汉字全部转换成不带音调的拼音输出,而这段文字中又可能包含阿拉伯数字、英文、标点符号等等。如果完全靠自己写代码进行转换,那是非常麻烦的,其中一个首先就要区别,这段文字中那些是汉字,那些是非汉字。有了Pinyin4j,这个问题就不再困难了,因为对于非汉字,Pinyin4j会自动输出null。参考下面的示例代码:

    importnet.sourceforge.pinyin4j.*;

    importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;

    importnet.sourceforge.pinyin4j.format.HanyuPinyinToneType;

    importnet.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

     

    public class Chinese2PY

    {

             public static void main(String[] args)

             {       

                       Hanyu hanyu = new Hanyu();

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

                       String str = "荆溪白石出,Hello 天寒红叶稀。Android 山路元无雨,What's up?   空翠湿人衣。";

                       String strPinyin = hanyu.getStringPinYin(str);

                       System.out.println(strPinyin);

             }

    }

     

    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();

             }

    }

    输出结果:

    jingxibaishichu,Hellotianhanhongyexi。Android shanluyuanwuyu,What'sup?   kongcuishirenyi。

    展开全文
  • 例如:在Android手机应用开发中,要查询联系人的姓名,通常都是用拼音进行查询的。 Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。 主要的功能有: - 支持同一汉字有多个发音 - ...
  • //第一步 汉字转拼音 有2种方法 一种是使用ChineseString 别人写的类 第二种是IOS自带的方法 我使用的便是第二种   NSMutableString *ms = [[NSMutableString alloc] initWithString:model.contactNickName]; ...
  • 语音识别,语音合成。语音技术主要分两块:一块是语音文字,即语音识别;... 应用场景:在线语音合成、离线语音合成系统场景- 读故事,小说频道,读新闻(新闻中的语音播报)。声学行业.。 智能音箱大战全面开...
  • Android 汉语转拼音

    2016-08-22 11:43:30
    有很多时候我们需要将汉字转换为拼音,例如手机中的联系人排序、在12306买车票时输入SZ\shenzhen就会提示深圳。 Android提供了汉字转拼音的类HanziToPinyin.java,据说这个类是在联系人app下的。具体目录是packages...
  • 科技高速发展,手机电脑已经得到全面普及,人们运用电脑作为沟通工具和获得咨询已经娱乐的方式,但是不是人人对用键盘打字都是很擅长的,尤其是一些年纪比较大的用户,拼音打字法是一种非常迅速和便捷的打字方法,...
  • 汉字编码 拼音输入法

    万次阅读 2009-08-30 13:43:00
    机内码国标码区位码计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。汉字信息在系统内传送的过程就是汉字编码转换的过程。汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,...
  • 这是谷歌拼音输入法的源码,此源码在原版的谷歌拼音输入法源码上进行了一些修改,添加了中文注释。
  • pinyin4j:拼音汉字的转换实例

    千次阅读 2015-08-28 17:24:09
    比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译...
  • C++ 中文转拼音 示例
  • 获取汉字拼音首字母

    2013-08-20 10:39:57
    最近在做一个拨打网络电话的应用,光数据库设计这一块就头疼了很久,需要创建独立的数据库,而不是直接使用手机联系人数据库。既然独立创建,那就需要模拟一份手机联系人的数据库信息。 应用设计到电话接打,信息...
  • 学1点欧码规则,用A-Z字母打中文汉字拼音,1-4码出字,平均上屏是2.51键. 3 1 2 33 51 4212 5 3 2 2 5 2 51 1113 2 31 5 24 21111 41 同样1句用内含[笔画输入]打字与词上屏字均仅86键/41字符=2.09键/字
  • Pinyin4j获取中文拼音

    千次阅读 2016-07-14 15:21:15
    比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译...
  • 利用 pinyin4j 把汉字转化为拼音

    千次阅读 2016-05-17 21:57:48
    比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译...
  • 小曹谈技术之中文拼音输入法

    千次阅读 2010-03-04 19:06:00
    常用的是拼音输入法,这种输入法是将汉字拼音与英文字母直接映射起来,由于这是一一映射的关系,所以理解起来最直观,也应用的最广泛。其他的还有如五笔输入法,是将汉字的偏旁部首映射到英文字母上去,每个英文...
  • 基于trie树的中文拼音输入法的研究与实现,雷宇,,中文输入法是指为了将汉字输入计算机或手机等电子设备而采用的编码方法,是中文信息处理的重要技术,是电脑中的必备软件。在PC平�
  • 前言在软件中方便用户查找信息时,都会用到输拼音首字母的简写快速过滤,所以一般我们在Oracle的表中会加上一列助记符列,今天我们就看看将中文怎么转换为拼音首字母。实现方式通过oracle...
  • 汉字编码与拼音输入法

    万次阅读 2008-09-10 09:03:00
    机内码国标码区位码计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。汉字信息在系统内传送的过程就是汉字编码转换的过程。汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,...
  • 手机应用商店的隐秘世界

    千次阅读 2010-07-21 20:35:00
    <br />水货手机的柜台决定着中国顶级智能手机内置的应用和内容。主宰这个世界的既不是苹果也不是谷歌,而是来自草根的91助手和它的同类们。 在中国,电子产品卖场通常都是“阴阳交隔”的地带:走进鼎好、...
  • 比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,540
精华内容 2,216
关键字:

下载汉字转拼音手机应用