本文主要介绍了中文转拼音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;
}
}










