c# 中文转拼音without CJK

Xamarin写Android程序时,通常要使用按中文首字母分组显示(如通讯录) 。

于是需要被迫包含CJK,不过包含后包肯定是会变大的,于是。。。。自己写了一个硬枚举的中文转拼音的类。

原理是这样的:

public class PinYinUtils
{
 private static readonly Dictionary PinYinDict = new Dictionary
 {

 {"猿", "YUAN"}
 // 等............
 };
 /// 
 /// Return to the first letter
 /// 
 /// Chinese word
 /// 
 /// GetFirstPinyinChar("张三")
 /// will return "Z"
 /// Can be used for address book index and so on
 /// 
 /// 
 public static string GetFirstPinyinChar(string word)
 {
 if (word.Length == 0) return "#";
 var firstLetter = word[0].ToString();
 if (PinYinDict.ContainsKey(firstLetter))
 {
  return PinYinDict[firstLetter];
 }
 return firstLetter;
 }
 /// 
 /// return the chinese char's pinyin
 /// 
 /// 
 /// 
 /// GetPinYin('福')
 /// will return "FU"
 /// 
 /// 
 public static string GetPinYin(char chineseChar)
 {
 var str = chineseChar.ToString();
 if (PinYinDict.ContainsKey(str))
 {
  return PinYinDict[str];
 }
 return null;
 }
 /// 
 /// Get the phonetic abbreviation for Chinese char
 /// 
 /// 
 /// 
 /// GetShortPinYin('福')
 /// will return "F"
 /// 
 /// 
 public static string GetShortPinYin(char chineseChar)
 {
 var str = chineseChar.ToString();
 if (PinYinDict.ContainsKey(str))
 {
  var first = PinYinDict[str].FirstOrDefault();
  if (first == 0) return null;
  return first.ToString();
 }
 return null;
 }
}

源码:

https://github.com/chsword/PinYinUtil/blob/master/PinYinUtils.cs

GITHUB:https://github.com/chsword/PinYinUtil

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

你可能感兴趣的:(c# 中文转拼音without CJK)