精华内容
下载资源
问答
  • 文档实例:https://blog.csdn.net/qq_33705529/article/details/82464888
  • pinyin4j-2.5.0.jar用于将汉字转拼音,用于实际项目汉字排序、汉字分类等功能
  • java汉字转拼音功能实现需要使用pinyin4j(pinyin for java)框架,使用也非常的简单,首先我们需要引入pinyin4j-2.5.0.jar包,或者直接引入pinyin4j maven,如下:com.belerwebpinyin4j2.5.0使用pinyin4j将汉字转换为...

    java汉字转拼音功能实现需要使用pinyin4j(pinyin for java)框架,使用也非常的简单,首先我们需要引入pinyin4j-2.5.0.jar包,或者直接引入pinyin4j maven,如下:

    com.belerweb

    pinyin4j

    2.5.0

    使用pinyin4j将汉字转换为拼音也非常的简单,示例如下。String hanzi = "我是中国人,重新崛起!";

    HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();

    // UPPERCASE:大写  (ZHONG)

    // LOWERCASE:小写  (zhong)

    format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

    // WITHOUT_TONE:无音标(zhong)

    // WITH_TONE_NUMBER:1-4数字表示英标的4个声调(zhong1)

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

    //参数1:需要转换的中文字符串

    //参数2:转换规则

    //参数3:用符号分隔,这里是空格符号

    String hanyuPinyinString = PinyinHelper.toHanyuPinyinString(hanzi, format, " ");

    System.out.println(hanyuPinyinString);

    上面的示例将输出如下结果:“wŏ shì zhōng guó rén ,zhòng xīn jué qĭ !”,但是我们发现又错误了,比如“重新做人”被翻译成了“zhòng xīn jué qĭ”,这是因为我们使用toHanyuPinyinString()这个方法将一个中文句子转化为拼音,它是无法识别多音字的。

    因此我们可能需要将中文句子拆分成多个字符,一个一个的转换成拼音,然后用String[]字符串数组来接收,并进行拼接,这样才可以不出错,例如汉字转拼音:

    String[] pinyin = PinyinHelper.toHanyuPinyinStringArray("重");

    这个多音字会返回字符串数组结果,然后进行筛选即可。

    "zhòng"

    "chóng"

    toHanyuPinyinString()方法已经过时,官方推荐将中文字符串拆分成单个字符来一个个的转换,这样才可以避免多音字造成的困扰。

    代码中说到使用音标符如果不使用WITH_TONE_MARK常量的话,就会报如下错误:

    net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination: tone marks cannot be added to v or u:

    来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/420.html

    展开全文
  • 汉字转拼音jar包附带封装 适用于Android和Java
  • java 汉字转拼音

    2013-12-27 21:30:53
    java 汉字转拼音 jar包 pinyin4j-2.5.0.jar package com.cn; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.source

    java 汉字转拼音


    jar包

    pinyin4j-2.5.0.jar


    代码:

    package com.cn;
    
    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 PinYin {
        public static String getPinYin(String inputString) {
            HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
            /**
             * 输出 小写 LOWERCASE
             * 大写 UPPERCASE
             */
            format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            /**
             * 输出
             * u WITH_U_AND_COLON
             * v WITH_V
             * ü WITH_U_UNICODE
             */
            format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
            /**
             * 输出 声调 WITH_TONE_MARK
             * 数字 WITH_TONE_NUMBER
             * 无声调 WITHOUT_TONE
             */
            format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
            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);
                        //for(String str:temp){
                            output.append(temp[0]);
                            output.append(" ");
                        //}
                        
                        
                    } else
                        output.append(Character.toString(input[i]));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            //return output.toString().replaceAll("\\W", "").trim();
            return output.toString();
        }
    
        public static void main(String[] args) {
            String chs = "安卓!";
            System.out.println(chs);
            //System.out.println(getFirstSpell(chs));
            System.out.println(getPinYin(chs));
            //System.out.println(discountTheChinese(chs));
    
        }
    
    }
    
    





    输出结果




    展开全文
  • 汉字转拼音jar

    2014-11-06 15:08:29
    汉字转拼音jar包,使用android和java,还有繁体转换等功能
  • 一、问题描述汉字转化为对应的拼音或者获取汉字拼音的首字母,这些都是在开发中经常...在Java中,pinyin4j.jar这个工具很好实现了将汉字转化为对应的拼音,下面我们就介绍下如何使用这个jar包。二、资源下载下载之后...

    一、问题描述

    汉字转化为对应的拼音或者获取汉字拼音的首字母,这些都是在开发中经常遇到的问题,在获取汉字的拼音或者拼音的首字母之后,我们在推荐或者搜索部门可以很大程度提高用户的体验,比如用户输入“NH”,我们就可以联想出“你好”、“你会”、“年后”、“内涵”等词语。在Java中,pinyin4j.jar这个工具很好实现了将汉字转化为对应的拼音,下面我们就介绍下如何使用这个jar包。

    二、资源下载下载之后解压,直接使用文件中的pinyin4j-2.5.0.jar即可。

    三、提供方法我们可以使用HanyuPinyinOutputFormat类来设置拼音的返回方式,比如设置拼音的大小写、音标方式以及拼音ü的显示形式,具体如下图:

    ea43a0ec1ec2c1c391f2dc1907bf99de.png

    直接使用PinyinHelper中的方法来对汉字做对应的转化,具体有如下三种,三种效果如何自己做下测试即可:

    3f0ec56c586a2e618cf69cb23dac96ef.png

    四、编写代码

    针对我们平常可能用到的功能,我做了如下的封装,提供的功能还有具体的实现步骤参照代码中的注释:

    package com.lulei.util;

    import java.util.ArrayList;

    import java.util.List;

    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 {

    private static HanyuPinyinOutputFormat format = null;

    static {

    format = new HanyuPinyinOutputFormat();

    //拼音小写

    format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

    //无音标方式;WITH_TONE_NUMBER:1-4数字表示英标;WITH_TONE_MARK:直接用音标符(必须WITH_U_UNICODE否则异常

    format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

    //用v表示ü

    format.setVCharType(HanyuPinyinVCharType.WITH_V);

    }

    /**

    * @param str

    * @return

    * @Description: 返回字符串的拼音

    */

    public static String[] getCharPinYinString(String str) {

    if (str == null || str.length() < 1) {

    return null;

    }

    List result = new ArrayList();

    //对字符串中的记录逐个分析

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

    result = getCharPinYinString(str.charAt(i), result);

    }

    return result.toArray(new String[result.size()]);

    }

    /**

    * @param c

    * @param list

    * @return

    * @Description: 将字符c的拼音拼接到list中的记录中

    */

    private static List getCharPinYinString(char c, List list) {

    String[] strs = getCharPinYinString(c);

    List result = new ArrayList();

    //如果解析出的拼音为空,判断字符C是否为英文字母,如果是英文字母则添加值拼音结果中

    if (strs == null) {

    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {

    c = c <= 91 ? (char)(c + 32) : c;

    if (list == null || list.size() == 0) {

    result.add(c + "");

    } else {

    for (String s : list) {

    result.add(s + c);

    }

    }

    return result;

    }

    return list;

    }

    //将字符C的拼音首和已存在的拼音首组合成新的记录

    for (String str : strs) {

    if (list == null || list.size() == 0) {

    result.add(str);

    } else {

    for (String s : list) {

    result.add(s + str);

    }

    }

    }

    return result;

    }

    /**

    * @param c

    * @return

    * @Description: 返回汉字的拼音

    */

    public static String[] getCharPinYinString(char c) {

    try {

    //返回字符C的拼音

    return PinyinHelper.toHanyuPinyinStringArray(c, format);

    } catch (Exception e) {

    e.printStackTrace();

    }

    return null;

    }

    /**

    * @param str

    * @return

    * @Description: 返回字符串的拼音的首字母

    */

    public static String[] getCharPinYinChar(String str) {

    if (str == null || str.length() < 1) {

    return null;

    }

    List result = new ArrayList();

    //对字符串中的记录逐个分析

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

    result = getCharPinYinChar(str.charAt(i), result);

    }

    return result.toArray(new String[result.size()]);

    }

    /**

    * @param c

    * @param list

    * @return

    * @Description: 将字符c的拼音首字母拼接到list中的记录中

    */

    private static List getCharPinYinChar(char c, List list) {

    char[] chars = getCharPinYinChar(c);

    List result = new ArrayList();

    //如果解析出的拼音为空,判断字符C是否为英文字母,如果是英文字母则添加值拼音结果中

    if (chars == null) {

    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {

    c = c < 91 ? (char)(c + 32) : c;

    if (list == null || list.size() == 0) {

    result.add(c + "");

    } else {

    for (String s : list) {

    result.add(s + c);

    }

    }

    return result;

    }

    return list;

    }

    //将字符C的拼音首字母和已存在的拼音首字母组合成新的记录

    for (char ch : chars) {

    if (list == null || list.size() == 0) {

    result.add(ch + "");

    } else {

    for (String s : list) {

    result.add(s + ch);

    }

    }

    }

    return result;

    }

    /**

    * @param c

    * @return

    * @Description:返回汉字拼音首字母

    */

    public static char[] getCharPinYinChar(char c) {

    //字符C的拼音

    String[] strs = getCharPinYinString(c);

    if (strs != null) {

    //截取拼音的首字母

    char[] chars = new char[strs.length];

    for(int i = 0; i

    chars[i] = strs[i].charAt(0);

    }

    return chars;

    }

    return null;

    }

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    char c = "重庆".charAt(0);

    String[] str = PinYinUtil.getCharPinYinString(c);

    for(String s : str) {

    System.out.println(s);

    }

    char[] chars = PinYinUtil.getCharPinYinChar(c);

    for(char c1 : chars) {

    System.out.println(c1);

    }

    str = PinYinUtil.getCharPinYinString("重庆c");

    for(String s : str) {

    System.out.println(s);

    }

    str = PinYinUtil.getCharPinYinChar("重庆a");

    for(String s : str) {

    System.out.println(s);

    }

    }

    }

    五、输出结果

    ee10df1042a2b57093a77a51ed8b1a33.png

    以上就是java实现汉字转拼音的全部内容,希望对大家的学习有所帮助。

    展开全文
  • java汉字转拼音

    2013-05-04 23:08:49
    java汉字转拼音jar包已上传,可转首字母!
  • Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包.import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import ...

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包.

    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 HanyuPinyinHelper {

    /**

    * 将文字转为汉语拼音

    * @param chineselanguage 要转成拼音的中文

    */

    public String toHanyuPinyin(String ChineseLanguage){

    char[] cl_chars = ChineseLanguage.trim().toCharArray();

    String hanyupinyin = "";

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

    defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部小写

    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调

    defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V) ;

    try {

    for (int i=0; i

    if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")){// 如果字符是中文,则将中文转为汉语拼音

    hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0];

    } else {// 如果字符不是中文,则不转换

    hanyupinyin += cl_chars[i];

    }

    }

    } catch (BadHanyuPinyinOutputFormatCombination e) {

    System.out.println("字符不能转成汉语拼音");

    }

    return hanyupinyin;

    }

    public static String getFirstLettersUp(String ChineseLanguage){

    return getFirstLetters(ChineseLanguage ,HanyuPinyinCaseType.UPPERCASE);

    }

    public static String getFirstLettersLo(String ChineseLanguage){

    return getFirstLetters(ChineseLanguage ,HanyuPinyinCaseType.LOWERCASE);

    }

    public static String getFirstLetters(String ChineseLanguage,HanyuPinyinCaseType caseType) {

    char[] cl_chars = ChineseLanguage.trim().toCharArray();

    String hanyupinyin = "";

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

    defaultFormat.setCaseType(caseType);// 输出拼音全部大写

    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调

    try {

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

    String str = String.valueOf(cl_chars[i]);

    if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母

    hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0].substring(0, 1);

    } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字

    hanyupinyin += cl_chars[i];

    } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母

    hanyupinyin += cl_chars[i];

    } else {// 否则不转换

    hanyupinyin += cl_chars[i];//如果是标点符号的话,带着

    }

    }

    } catch (BadHanyuPinyinOutputFormatCombination e) {

    System.out.println("字符不能转成汉语拼音");

    }

    return hanyupinyin;

    }

    public static String getPinyinString(String ChineseLanguage){

    char[] cl_chars = ChineseLanguage.trim().toCharArray();

    String hanyupinyin = "";

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

    defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部大写

    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调

    try {

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

    String str = String.valueOf(cl_chars[i]);

    if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母

    hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(

    cl_chars[i], defaultFormat)[0];

    } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字

    hanyupinyin += cl_chars[i];

    } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母

    hanyupinyin += cl_chars[i];

    } else {// 否则不转换

    }

    }

    } catch (BadHanyuPinyinOutputFormatCombination e) {

    System.out.println("字符不能转成汉语拼音");

    }

    return hanyupinyin;

    }

    /**

    * 取第一个汉字的第一个字符

    * @Title: getFirstLetter

    * @Description: TODO

    * @return String

    * @throws

    */

    public static String getFirstLetter(String ChineseLanguage){

    char[] cl_chars = ChineseLanguage.trim().toCharArray();

    String hanyupinyin = "";

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

    defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 输出拼音全部大写

    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调

    try {

    String str = String.valueOf(cl_chars[0]);

    if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母

    hanyupinyin = PinyinHelper.toHanyuPinyinStringArray(

    cl_chars[0], defaultFormat)[0].substring(0, 1);;

    } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字

    hanyupinyin += cl_chars[0];

    } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母

    hanyupinyin += cl_chars[0];

    } else {// 否则不转换

    }

    } catch (BadHanyuPinyinOutputFormatCombination e) {

    System.out.println("字符不能转成汉语拼音");

    }

    return hanyupinyin;

    }

    public static void main(String[] args) {

    HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper() ;

    System.out.println(hanyuPinyinHelper.toHanyuPinyin("多发的发独守空房阿道夫打发第三方"));

    }

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

    展开全文
  • Java 汉字转拼音

    2015-12-10 10:03:38
    汉字转拼音代码 及pinyin4j-2.5.0.jar
  • 本文实例讲述了Java汉字转拼音pinyin4j用法。分享给大家供大家参考,具体如下:汉字转换拼音在日常开发中是个很常见的问题。例如我们伟大的12306,在地名中输入“WH”,就会出现“武汉”“芜湖”“威海”等地名,...
  • 根据汉字获取全拼或者首字母。我试过是可以用的。
  • 完整的汉字转拼音代码,可以转多种类型,转全拼音或者转第一个字为全拼音,后面取首字母和Jar
  • 这就需要获取汉字对应的拼音了,突然就想起了pinyin4j这个jar包,于是就开始写了个汉字转拼音的工具类.在此记录一下,方便后续查阅 一.Pom依赖 ... 汉字转拼音(pinyin4j) 1.引入依赖 pinyin4j.sourceforge.net ... 最...
  • JAVA 汉字转换拼音

    2013-10-11 15:49:37
    1、添加pinyin4j-2.5.0.jarjar包 2、PinYinUtil至此汉字转换拼音汉字首字母
  • java汉字转换拼音

    千次阅读 2012-10-21 13:12:53
    1、汉字转换拼音首先引入一个叫pinyin4j-2.5.0.jar 下载地址:http://download.csdn.net/detail/yao__shun__yu/4670228 2、测试代码 import demo.Pinyin4jAppletDemo; import ...
  • 一:演示: 如在控制台输入:北京欢迎你打印出来的拼音:bei jing huan ying ni二:导入要依赖的jar:三:代码编写public static String getPinYin(String src) {char[] t1 = null;t1 = src.toCharArray();// System...
  • Java汉字转拼音的类

    2018-09-06 17:25:37
    Java汉字转拼音的类。使用pinyin4j实现。 jar包下载(附带代码demo): https://download.csdn.net/download/qq_33705529/10650226 pom坐标: &lt;!-- ...
  • JAVA汉字转拼音

    2019-05-03 15:31:00
    首先先要导入pinyin4j-2.5.0.jar 这个jar包 /** * 得到 全拼 * * @param src * @return */ public static String getPingYin(String src) { char[] t1 = null; t1 ...
  • } /*** * 将单个汉字转拼音 * * @param hanzi * @return */ private static String convertSingleHanzi2Pinyin(char hanzi) { HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();...
  • 提供汉字转成对应拼音Java实现Jar
  • java汉字转拼音,使用pingyin4j 使用了两个库一个是pingying4j的jar包,另一个是Apache common lang的jar包,/** To change this template, choose Tools | Templates* ...
  • java汉字转拼音工具类

    2012-09-12 13:05:09
    在web开发中使用,将多个汉字转成首字母大写的汉语拼音,直接将三个文件夹放到src下或打成jar,调用即可, 包含测试类
  • i++) {//判断是否为汉字字符 if(java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) { t2=PinyinHelper.toHanyuPinyinStringArray(t1[i], t3); t4+= t2[0]; }elset4+=java.lang.Character....
  • java汉字转拼音pinyin4j-2.5.0.jar用法

    千次阅读 2017-06-23 09:35:29
    需要jar文件:pinyin4j-2.5.0.jar下载地址:http://sourceforge.net/projects/pinyin4j/示例代码:package com.wqd.common.util;import net.sourceforge.pinyin4j.PinyinHelper;import ...
  • // 设置汉字拼音输出的格式 HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat(); t3.setCaseType(HanyuPinyinCaseType.LOWERCASE); t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE); t3.setVCharType...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 212
精华内容 84
关键字:

java汉字转拼音jar

java 订阅