ASP.NET 中文转拼音及提取首字母

by 清泉 18. 九月 2008 09:18
前面提供过ASP中文转拼音、PHP中文转拼音,对应的地址为ASP中文自动转拼音函数PHP应用之中文转拼音
现在再提供一个ASP.net的中文转拼音及中文提取首字母函数。

package com.free.util;
import java.io.UnsupportedEncodingException;
import java.util.Hashtable;
public class Pingyin {
private static Hashtable<String, String> ht = new Hashtable<String, String>(10);
private static String g(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();
  }
}
public static String getPingyin(String str)
  throws UnsupportedEncodingException {
  if (str == null)
  return null;
  str = new String(str.getBytes(), "ISO-8859-1");
  char[] hz = str.toCharArray();
  // byte[] hz=str.getBytes() ;
  int len = str.length();
  // int len=hz.length;
  int p, q;
  String ret = "";
  for (int i = 0; i < len; i++) {
  p = (int) hz[i];
  if (p > 160) {
    q = (int) hz[++i];
    p = p * 256 + q - 65536;
  }
  ret += g(new Integer(p));
  }
  return ret;
}
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("-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", "zz");
}
public static void main(String[] args) {
  StringBuilder html = new StringBuilder();
  String flag=null;
  try {
  //提取首字母
//  String[] str = { "江苏省常州市" };
//  for (int i = 0; i <= str.length - 1; i++) {
//    java.util.Arrays.sort(str); 
//    if(!Pingyin.getPingyin(str).substring(0, 1).equals(flag)){
//    html.append("</li>\n<li>");
//    html.append(Pingyin.getPingyin(str).substring(0, 1));
//    flag=Pingyin.getPingyin(str).substring(0, 1);
//    }
//    html.append(str);
//    html.append("|  ");
//  }
//  html.append("</li>");
  System.out.println(Pingyin.getPingyin("江苏省常州市" ));
 
  } catch (UnsupportedEncodingException e) {
  e.printStackTrace();
  }
}
}

Tags: , ,

DotNet技术资料

评论

添加评论



(将显示你的Gravatar头像)  

biuquote
微笑得意调皮害羞酷大笑惊讶发呆喜欢可怜尴尬闭嘴噘嘴皱眉伤心抓狂呕吐坏笑漫骂发怒
Loading



Supidea.com 晨飞的梦 @ All Rights Reserved. Powered by BlogYi.NET ver:1.8.0.0. 苏ICP备09011404号

关于博主

kamau
抱着美好的理想背井离乡,这酸甜苦辣只能默默忍受。既然选择了路,就得风雨兼程……

Calendar

<<  二月 2012  >>
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

在日历中查看文章

最近的评论

Comment RSS

声明

      本博所发一切破解相关附件只作学习研究交流之用,严禁用于商业用途,请在下载24小时内删除。
      本博所有网友评论不代表本博立场,版权归其作者所有。

© Copyright 2009