All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mtons.utils.PinyinUtils Maven / Gradle / Ivy

/*
+--------------------------------------------------------------------------
|   Mtons [#RELEASE_VERSION#]
|   ========================================
|   Copyright (c) 2014, 2015 mtons. All Rights Reserved
|   http://www.mtons.com
+---------------------------------------------------------------------------
*/
package mtons.utils;

import java.util.Hashtable;

/**
 * 拼音常用类的整理,包括几大常用功能:
*
    *
  1. 获取拼音首字母如: 天气 - tq
  2. *
  3. 获取拼音全部字母 汉字之间空格分开。如: 天气 - tian qi
  4. *
  5. 其他
  6. *
*

* 代码示例: * PinyinUtil.getAllLetters("天气"); *

* Created by langhsu on 2015/11/6. */ public class PinyinUtils { private static Hashtable ht = new Hashtable<>(10); /** * 从数组中获取对应的拼音字符 * * @param n 索引 * @return 结果 */ private static String findPinyin(Integer n) { int num = n.intValue(); if (num > 0 && num < 160) { return String.valueOf((char) num); } else if (num < -20319 || num > -10247) { return ""; } else { if (ht.size() == 0) { b(); } while (!ht.containsKey(Integer.toString(num))) num--; return ht.get(Integer.toString(num)).toString(); } } /** * 获取拼音首字母如: 天气 - tq * 注意:多音字无法正确区别 * * @param str 目标字符串 * @return 首字母 */ public static String getFisrtLetter(String str) { byte[] hz = null; try { hz = str.getBytes("gbk"); } catch (Exception e1) { } // int len = str.length(); int p, q; StringBuffer ret = new StringBuffer(""); for (int i = 0; i < hz.length; i++) { p = (int) hz[i]; if (p < 0) {// p<0 说明是汉字 p += 256; q = (int) hz[++i] + 256; p = p * 256 + q - 65536; try { ret.append(findPinyin(new Integer(p)).substring(0, 1));//只取每个字拼音的首字母 } catch (Exception e) { } } else { ret.append((char) hz[i]); } } return ret.toString().toLowerCase().replaceAll("\\\"", "").replaceAll(" ", ""); } /** * 获取拼音全部字母 汉字之间空格分开。如: 天气 - tian qi * 注意:多音字无法正确区别 * * @param str 目标文字 * @return 拼音结果 */ public static String getAllLetters(String str) { byte[] hz = null; try { hz = str.getBytes("gbk"); } catch (Exception e1) { } // int len = str.length(); int p, q; StringBuffer ret = new StringBuffer(""); for (int i = 0; i < hz.length; i++) { p = (int) hz[i]; if (p < 0) {// p<0 说明是汉字 p += 256; q = (int) hz[++i] + 256; p = p * 256 + q - 65536; try { ret.append(findPinyin(new Integer(p)));//只取每个字拼音的首字母 } catch (Exception e) { } ret.append(" "); } else { ret.append((char) hz[i]); } } return ret.toString().toLowerCase().replaceAll("\\\"", ""); } private static void b() { ht.put("-20319", "a"); ht.put("-20317", "ai"); ht.put("-20304", "an"); ht.put("-20295", "ang"); ht.put("-20292", "ao"); ht.put("-20283", "ba"); ht.put("-20265", "bai"); ht.put("-20257", "ban"); ht.put("-20242", "bang"); ht.put("-20230", "bao"); ht.put("-20051", "bei"); ht.put("-20036", "ben"); ht.put("-20032", "beng"); ht.put("-20026", "bi"); ht.put("-20002", "bian"); ht.put("-19990", "biao"); ht.put("-19986", "bie"); ht.put("-19982", "bin"); ht.put("-19976", "bing"); ht.put("-19805", "bo"); ht.put("-19784", "bu"); ht.put("-19775", "ca"); ht.put("-19774", "cai"); ht.put("-19763", "can"); ht.put("-19756", "cang"); ht.put("-19751", "cao"); ht.put("-19746", "ce"); ht.put("-19741", "ceng"); ht.put("-19739", "cha"); ht.put("-19728", "chai"); ht.put("-19725", "chan"); ht.put("-19715", "chang"); ht.put("-19540", "chao"); ht.put("-19531", "che"); ht.put("-19525", "chen"); ht.put("-19515", "cheng"); ht.put("-19500", "chi"); ht.put("-19484", "chong"); ht.put("-19479", "chou"); ht.put("-19467", "chu"); ht.put("-19289", "chuai"); ht.put("-19288", "chuan"); ht.put("-19281", "chuang"); ht.put("-19275", "chui"); ht.put("-19270", "chun"); ht.put("-19263", "chuo"); ht.put("-19261", "ci"); ht.put("-19249", "cong"); ht.put("-19243", "cou"); ht.put("-19242", "cu"); ht.put("-19238", "cuan"); ht.put("-19235", "cui"); ht.put("-19227", "cun"); ht.put("-19224", "cuo"); ht.put("-19218", "da"); ht.put("-19212", "dai"); ht.put("-19038", "dan"); ht.put("-19023", "dang"); ht.put("-19018", "dao"); ht.put("-19006", "de"); ht.put("-19003", "deng"); ht.put("-18996", "di"); ht.put("-18977", "dian"); ht.put("-18961", "diao"); ht.put("-18952", "die"); ht.put("-18783", "ding"); ht.put("-18774", "diu"); ht.put("-18773", "dong"); ht.put("-18763", "dou"); ht.put("-18756", "du"); ht.put("-18741", "duan"); ht.put("-18735", "dui"); ht.put("-18731", "dun"); ht.put("-18722", "duo"); ht.put("-18710", "e"); ht.put("-18697", "en"); ht.put("-18696", "er"); ht.put("-18526", "fa"); ht.put("-18518", "fan"); ht.put("-18501", "fang"); ht.put("-18490", "fei"); ht.put("-18478", "fen"); ht.put("-18463", "feng"); ht.put("-18448", "fo"); ht.put("-18447", "fou"); ht.put("-18446", "fu"); ht.put("-18239", "ga"); ht.put("-18237", "gai"); ht.put("-18231", "gan"); ht.put("-18220", "gang"); ht.put("-18211", "gao"); ht.put("-18201", "ge"); ht.put("-18184", "gei"); ht.put("-18183", "gen"); ht.put("-18181", "geng"); ht.put("-18012", "gong"); ht.put("-17997", "gou"); ht.put("-17988", "gu"); ht.put("-17970", "gua"); ht.put("-17964", "guai"); ht.put("-17961", "guan"); ht.put("-17950", "guang"); ht.put("-17947", "gui"); ht.put("-17931", "gun"); ht.put("-17928", "guo"); ht.put("-17922", "ha"); ht.put("-17759", "hai"); ht.put("-17752", "han"); ht.put("-17733", "hang"); ht.put("-17730", "hao"); ht.put("-17721", "he"); ht.put("-17703", "hei"); ht.put("-17701", "hen"); ht.put("-17697", "heng"); ht.put("-17692", "hong"); ht.put("-17683", "hou"); ht.put("-17676", "hu"); ht.put("-17496", "hua"); ht.put("-17487", "huai"); ht.put("-17482", "huan"); ht.put("-17468", "huang"); ht.put("-17454", "hui"); ht.put("-17433", "hun"); ht.put("-17427", "huo"); ht.put("-17417", "ji"); ht.put("-17202", "jia"); ht.put("-17185", "jian"); ht.put("-16983", "jiang"); ht.put("-16970", "jiao"); ht.put("-16942", "jie"); ht.put("-16915", "jin"); ht.put("-16733", "jing"); ht.put("-16708", "jiong"); ht.put("-16706", "jiu"); ht.put("-16689", "ju"); ht.put("-16664", "juan"); ht.put("-16657", "jue"); ht.put("-16647", "jun"); ht.put("-16474", "ka"); ht.put("-16470", "kai"); ht.put("-16465", "kan"); ht.put("-16459", "kang"); ht.put("-16452", "kao"); ht.put("-16448", "ke"); ht.put("-16433", "ken"); ht.put("-16429", "keng"); ht.put("-16427", "kong"); ht.put("-16423", "kou"); ht.put("-16419", "ku"); ht.put("-16412", "kua"); ht.put("-16407", "kuai"); ht.put("-16403", "kuan"); ht.put("-16401", "kuang"); ht.put("-16393", "kui"); ht.put("-16220", "kun"); ht.put("-16216", "kuo"); ht.put("-16212", "la"); ht.put("-16205", "lai"); ht.put("-16202", "lan"); ht.put("-16187", "lang"); ht.put("-16180", "lao"); ht.put("-16171", "le"); ht.put("-16169", "lei"); ht.put("-16158", "leng"); ht.put("-16155", "li"); ht.put("-15959", "lia"); ht.put("-15958", "lian"); ht.put("-15944", "liang"); ht.put("-15933", "liao"); ht.put("-15920", "lie"); ht.put("-15915", "lin"); ht.put("-15903", "ling"); ht.put("-15889", "liu"); ht.put("-15878", "long"); ht.put("-15707", "lou"); ht.put("-15701", "lu"); ht.put("-15681", "lv"); ht.put("-15667", "luan"); ht.put("-15661", "lue"); ht.put("-15659", "lun"); ht.put("-15652", "luo"); ht.put("-15640", "ma"); ht.put("-15631", "mai"); ht.put("-15625", "man"); ht.put("-15454", "mang"); ht.put("-15448", "mao"); ht.put("-15436", "me"); ht.put("-15435", "mei"); ht.put("-15419", "men"); ht.put("-15416", "meng"); ht.put("-15408", "mi"); ht.put("-15394", "mian"); ht.put("-15385", "miao"); ht.put("-15377", "mie"); ht.put("-15375", "min"); ht.put("-15369", "ming"); ht.put("-15363", "miu"); ht.put("-15362", "mo"); ht.put("-15183", "mou"); ht.put("-15180", "mu"); ht.put("-15165", "na"); ht.put("-15158", "nai"); ht.put("-15153", "nan"); ht.put("-15150", "nang"); ht.put("-15149", "nao"); ht.put("-15144", "ne"); ht.put("-15143", "nei"); ht.put("-15141", "nen"); ht.put("-15140", "neng"); ht.put("-15139", "ni"); ht.put("-15128", "nian"); ht.put("-15121", "niang"); ht.put("-15119", "niao"); ht.put("-15117", "nie"); ht.put("-15110", "nin"); ht.put("-15109", "ning"); ht.put("-14941", "niu"); ht.put("-14937", "nong"); ht.put("-14933", "nu"); ht.put("-14930", "nv"); ht.put("-14929", "nuan"); ht.put("-14928", "nue"); ht.put("-14926", "nuo"); ht.put("-14922", "o"); ht.put("-14921", "ou"); ht.put("-14914", "pa"); ht.put("-14908", "pai"); ht.put("-14902", "pan"); ht.put("-14894", "pang"); ht.put("-14889", "pao"); ht.put("-14882", "pei"); ht.put("-14873", "pen"); ht.put("-14871", "peng"); ht.put("-14857", "pi"); ht.put("-14678", "pian"); ht.put("-14674", "piao"); ht.put("-14670", "pie"); ht.put("-14668", "pin"); ht.put("-14663", "ping"); ht.put("-14654", "po"); ht.put("-14645", "pu"); ht.put("-14630", "qi"); ht.put("-14594", "qia"); ht.put("-14429", "qian"); ht.put("-14407", "qiang"); ht.put("-14399", "qiao"); ht.put("-9500", "qiao"); ht.put("-14384", "qie"); ht.put("-14379", "qin"); ht.put("-14368", "qing"); ht.put("-14355", "qiong"); ht.put("-14353", "qiu"); ht.put("-14345", "qu"); ht.put("-14170", "quan"); ht.put("-14159", "que"); ht.put("-14151", "qun"); ht.put("-14149", "ran"); ht.put("-14145", "rang"); ht.put("-14140", "rao"); ht.put("-14137", "re"); ht.put("-14135", "ren"); ht.put("-14125", "reng"); ht.put("-14123", "ri"); ht.put("-14122", "rong"); ht.put("-14112", "rou"); ht.put("-14109", "ru"); ht.put("-14099", "ruan"); ht.put("-14097", "rui"); ht.put("-14094", "run"); ht.put("-14092", "ruo"); ht.put("-14090", "sa"); ht.put("-14087", "sai"); ht.put("-14083", "san"); ht.put("-13917", "sang"); ht.put("-13914", "sao"); ht.put("-13910", "se"); ht.put("-13907", "sen"); ht.put("-13906", "seng"); ht.put("-13905", "sha"); ht.put("-13896", "shai"); ht.put("-13894", "shan"); ht.put("-13878", "shang"); ht.put("-13870", "shao"); ht.put("-13859", "she"); ht.put("-13847", "shen"); ht.put("-13831", "sheng"); ht.put("-13658", "shi"); ht.put("-13611", "shou"); ht.put("-13601", "shu"); ht.put("-13406", "shua"); ht.put("-13404", "shuai"); ht.put("-13400", "shuan"); ht.put("-13398", "shuang"); ht.put("-13395", "shui"); ht.put("-13391", "shun"); ht.put("-13387", "shuo"); ht.put("-13383", "si"); ht.put("-13367", "song"); ht.put("-13359", "sou"); ht.put("-13356", "su"); ht.put("-13343", "suan"); ht.put("-13340", "sui"); ht.put("-13329", "sun"); ht.put("-13326", "suo"); ht.put("-13318", "ta"); ht.put("-13147", "tai"); ht.put("-13138", "tan"); ht.put("-13120", "tang"); ht.put("-13107", "tao"); ht.put("-13096", "te"); ht.put("-13095", "teng"); ht.put("-13091", "ti"); ht.put("-13076", "tian"); ht.put("-13068", "tiao"); ht.put("-13063", "tie"); ht.put("-13060", "ting"); ht.put("-12888", "tong"); ht.put("-12875", "tou"); ht.put("-12871", "tu"); ht.put("-12860", "tuan"); ht.put("-12858", "tui"); ht.put("-12852", "tun"); ht.put("-12849", "tuo"); ht.put("-12838", "wa"); ht.put("-12831", "wai"); ht.put("-12829", "wan"); ht.put("-12812", "wang"); ht.put("-12802", "wei"); ht.put("-12607", "wen"); ht.put("-12597", "weng"); ht.put("-12594", "wo"); ht.put("-12585", "wu"); ht.put("-12556", "xi"); ht.put("-12359", "xia"); ht.put("-12346", "xian"); ht.put("-12320", "xiang"); ht.put("-12300", "xiao"); ht.put("-12120", "xie"); ht.put("-12099", "xin"); ht.put("-12089", "xing"); ht.put("-12074", "xiong"); ht.put("-12067", "xiu"); ht.put("-12058", "xu"); ht.put("-12039", "xuan"); ht.put("-11867", "xue"); ht.put("-11861", "xun"); ht.put("-11847", "ya"); ht.put("-11831", "yan"); ht.put("-11798", "yang"); ht.put("-11781", "yao"); ht.put("-11604", "ye"); ht.put("-11589", "yi"); ht.put("-11536", "yin"); ht.put("-11358", "ying"); ht.put("-11340", "yo"); ht.put("-11339", "yong"); ht.put("-11324", "you"); ht.put("-11303", "yu"); ht.put("-11097", "yuan"); ht.put("-11077", "yue"); ht.put("-11067", "yun"); ht.put("-11055", "za"); ht.put("-11052", "zai"); ht.put("-11045", "zan"); ht.put("-11041", "zang"); ht.put("-11038", "zao"); ht.put("-11024", "ze"); ht.put("-11020", "zei"); ht.put("-11019", "zen"); ht.put("-11018", "zeng"); ht.put("-11014", "zha"); ht.put("-10838", "zhai"); ht.put("-10832", "zhan"); ht.put("-10815", "zhang"); ht.put("-10800", "zhao"); ht.put("-10790", "zhe"); ht.put("-10780", "zhen"); ht.put("-10764", "zheng"); ht.put("-10587", "zhi"); ht.put("-10544", "zhong"); ht.put("-10533", "zhou"); ht.put("-10519", "zhu"); ht.put("-10331", "zhua"); ht.put("-10329", "zhuai"); ht.put("-10328", "zhuan"); ht.put("-10322", "zhuang"); ht.put("-10315", "zhui"); ht.put("-10309", "zhun"); ht.put("-10307", "zhuo"); ht.put("-10296", "zi"); ht.put("-10281", "zong"); ht.put("-10274", "zou"); ht.put("-10270", "zu"); ht.put("-10262", "zuan"); ht.put("-10260", "zui"); ht.put("-10256", "zun"); ht.put("-10254", "zuo"); // ht.put("-10247","zuo"); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy