精华内容
下载资源
问答
  • java获取汉字拼音

    2018-06-22 17:08:53
    传入汉字的句子,获取每个汉字拼音,注意带声调,1-4声调。如a的声调共有āáǎàa。从网上根据js改编。
  • JAVA 获取汉字拼音

    2018-06-06 16:00:19
     // 判断是否为汉字字符  if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {  t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);  t4 += t2[0];  } else {  t4 += java.lang....

    需要pinyin4j-2.5.0.jar 这个架包

    /**

         * 得到 全拼
         * 
         * @param src
         */
        public static String getPingYin(String src) {
            char[] t1 = null;
            t1 = src.toCharArray();
            String[] t2 = new String[t1.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++) {
                    // 判断是否为汉字字符
                    if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
                        t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
                        t4 += t2[0];
                    } else {
                        t4 += java.lang.Character.toString(t1[i]);
                    }
                }
                return t4;
            } catch (BadHanyuPinyinOutputFormatCombination e1) {
                e1.printStackTrace();
            }
            return t4;
        }
    展开全文
  • Java获取汉字拼音和拼音缩写

    Java获取汉字拼音和拼音缩写


    • 有时候,为了获取更好的搜索效果,我们需要通过拼音搜索来实现汉字的匹配。现提供汉字转拼音和拼音缩写的方法如下:
    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 void main(String[] args) {
            // 汉字转拼音,拼音首字母,自学习首字母查询
            String searchWord = "你好";
    
            String pingYinSuoXie = PinYin.getPingYinSuoXie(searchWord);
            String pingYinSuoXie2 = PinYin.getPingYinSuoXie2(searchWord);
            String pingYin = PinYin.getPingYin(searchWord);
    
            System.out.println(pingYinSuoXie);
            System.out.println(pingYinSuoXie2);
            System.out.println(pingYin);
        }
    
        /**
         * 将字符串中的中文转化为拼音首字母
         */
        public static String getPingYinSuoXie(String inputString) {
            HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
            format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    
            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].charAt(0);
                        } else {
                            output += java.lang.Character.toString(input[i]);
                        }
                    }
                } catch (BadHanyuPinyinOutputFormatCombination e) {
                    e.printStackTrace();
                }
            } else {
                return "*";
            }
            return output;
        }
    
        /**
         * 将字符串中的中文转化为拼音首字母
         */
        public static String getPingYinSuoXie2(String inputString) {
            HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
            format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    
            int a = 0;
            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);
                            if (a == 0) {
                                output += temp[0];
                            } else {
                                output += temp[0].charAt(0);
                            }
                            a++;
                        } else {
                            output += java.lang.Character.toString(input[i]);
                        }
                    }
                } catch (BadHanyuPinyinOutputFormatCombination e) {
                    e.printStackTrace();
                }
            } else {
                return "*";
            }
            return output;
        }
    
        /**
         * 将字符串中的中文转化为拼音
         */
        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;
        }
    }
    展开全文
  • 主要介绍了Java获取汉字拼音的全拼和首拼实现代码分享,本文直接给出实现代码,需要的朋友可以参考下
  • Java获取汉字拼音

    2016-05-26 13:47:00
    <pre name="code" class="java">import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; impor...
    <pre name="code" class="java">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 GetPinyin {
    
    	/**
    	 * 得到 全拼
    	 * 
    	 * @param src
    	 * @return
    	 */
    	public static String getPingYin(String src) {
    		char[] t1 = null;
    		t1 = src.toCharArray();
    		String[] t2 = new String[t1.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++) {
    				// 判断是否为汉字字符
    				if (java.lang.Character.toString(t1[i]).matches(
    						"[\\u4E00-\\u9FA5]+")) {
    					t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
    					t4 += t2[0];
    				} else {
    					t4 += java.lang.Character.toString(t1[i]);
    				}
    			}
    			return t4;
    		} catch (BadHanyuPinyinOutputFormatCombination e1) {
    			e1.printStackTrace();
    		}
    		return t4;
    	}
    
    	/**
    	 * 得到中文首字母
    	 * 
    	 * @param str
    	 * @return
    	 */
    	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
    	 */
    	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));
    			strBuf.append(Integer.toHexString(bGBK[i] & 0xff));
    		}
    		return strBuf.toString();
    	}
    
    	public static void main(String[] args) {
    
    		String cnStr = "中国";
    		System.out.println(getPingYin(cnStr));
    		System.out.println(getPinYinHeadChar(cnStr));
    	}
    
    }


    转载于:https://my.oschina.net/huewenhua/blog/681636

    展开全文
  • JAVA获取汉字拼音首字母 package com.common.util; import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Title: ChineseCharToEn * @date 注:只支持GB2312字符集中的...

    JAVA获取汉字拼音首字母

    package com.common.util;
    
    import java.io.UnsupportedEncodingException;
    
    /**
     * 取得给定汉字串的首字母串,即声母串 
     * Title: ChineseCharToEn 
     * @date 注:只支持GB2312字符集中的汉字 
     */
    public final class ChineseCharToEn {
        private final static int[] li_SecPosValue = { 1601, 1637, 1833, 2078, 2274,
                2302, 2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858,
                4027, 4086, 4390, 4558, 4684, 4925, 5249, 5590 };
        private final static String[] lc_FirstLetter = { "a", "b", "c", "d", "e",
                "f", "g", "h", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
                "t", "w", "x", "y", "z" };
    
        /**
         * 取得给定汉字串的首字母串,即声母串 
         * @param str 给定汉字串 
         * @return 声母串
         */
        public static String getAllFirstLetter(String str) {
            if (str == null || str.trim().length() == 0) {
                return "";
            }
    
            String _str = "";
            for (int i = 0; i < str.length(); i++) {
                _str = _str + getFirstLetter(str.substring(i, i + 1));
            }
    
            return _str;
        }
    
        /**
         * 取得给定汉字的首字母,即声母 
         * @param chinese 给定的汉字 
         * @return 给定汉字的声母
         */
        public static String getFirstLetter(String chinese) {
            if (chinese == null || chinese.trim().length() == 0) {
                return "";
            }
            chinese = conversionStr(chinese, "GB2312", "ISO8859-1");
    
            if (chinese.length() > 1) // 判断是不是汉字  
            {
                int li_SectorCode = (int) chinese.charAt(0); // 汉字区码  
                int li_PositionCode = (int) chinese.charAt(1); // 汉字位码  
                li_SectorCode = li_SectorCode - 160;
                li_PositionCode = li_PositionCode - 160;
                int li_SecPosCode = li_SectorCode * 100 + li_PositionCode; // 汉字区位码  
                if (li_SecPosCode > 1600 && li_SecPosCode < 5590) {
                    for (int i = 0; i < 23; i++) {
                        if (li_SecPosCode >= li_SecPosValue[i]
                                && li_SecPosCode < li_SecPosValue[i + 1]) {
                            chinese = lc_FirstLetter[i];
                            break;
                        }
                    }
                } else // 非汉字字符,如图形符号或ASCII码  
                {
                    chinese = conversionStr(chinese, "ISO8859-1", "GB2312");
                    chinese = chinese.substring(0, 1);
                }
            }
    
            return chinese;
        }
    
        /**
         * 字符串编码转换 
         * @param str 要转换编码的字符串 
         * @param charsetName 原来的编码 
         * @param toCharsetName 转换后的编码 
         * @return 经过编码转换后的字符串
         */
        private static String conversionStr(String str, String charsetName,String toCharsetName) {
            try {
                str = new String(str.getBytes(charsetName), toCharsetName);
            } catch (UnsupportedEncodingException ex) {
                System.out.println("字符串编码转换异常:" + ex.getMessage());
            }
            return str;
        }
    
        public static void main(String[] args) {
            System.out.println("获取拼音首字母:"+getAllFirstLetter("大中国南昌中大china"));
        }
    
    }
    

    方便学习保存,
    查看原文请到https://www.cnblogs.com/pxblog/p/10604003.html

    展开全文
  • java 获取汉字拼音首字母 源码 /** * GB 2312-80 把收录的汉字分成两级。第一级汉字是常用汉字,计 3755 个, 置于 16~55 * 区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字, 计 3008 个,置于 56~...
  • JAVA 获得汉字拼音

    2012-09-10 22:49:50
    http://blog.csdn.net/w540982016044/article/details/7493764
  • 通过输入汉字获取汉字拼音首字母 很好用的奥
  • Java 获取汉字拼音首字母  在项目中要更能根据某些查询条件(比如姓名)的首字母作为条件进行查询,比如查一个叫“张三”的人,可以输入‘zs'。写了一个工具类如下: package com.lenovo.cn; /**  * @...
  • java 获取汉字拼音和首字母 public class HanZiToPinYin {   public static String getPinyin(String gb2312) {   if (null == gb2312 || "".equals(gb2312.trim())){   return gb2312;
  • java 获取汉字拼音的首字母 .  分类:  android 其他2012-03-10 21:18610人阅读评论(0)收藏举报 javastringbytebufferclass工具 在项目中要更能根据某些查询条件(比如姓名)的首字母作为条件进行查询,...
  •  // 判断是否为汉字字符  if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {   t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);   t4 += t2[0];   }else{   t4 += java...
  •  * 根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串 最重要的一个方法,思路如下:一个个字符读入、判断、输出  */   public static String cn2py(String SourceStr) {   String Result = "";   ...

空空如也

空空如也

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

java获取汉字拼音

java 订阅