public
class
PinYinUtils
{
private
static
readonly
Dictionary<
string
,
string
> PinYinDict =
new
Dictionary<
string
,
string
>
{
{
"猿"
,
"YUAN"
}
};
/// <summary>
/// Return to the first letter
/// </summary>
/// <param name="word">Chinese word</param>
/// <example>
/// GetFirstPinyinChar("张三")
/// will return "Z"
/// Can be used for address book index and so on
/// </example>
/// <returns></returns>
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;
}
/// <summary>
/// return the chinese char's pinyin
/// </summary>
/// <param name="chineseChar"></param>
/// <example>
/// GetPinYin('福')
/// will return "FU"
/// </example>
/// <returns></returns>
public
static
string
GetPinYin(
char
chineseChar)
{
var
str = chineseChar.ToString();
if
(PinYinDict.ContainsKey(str))
{
return
PinYinDict[str];
}
return
null
;
}
/// <summary>
/// Get the phonetic abbreviation for Chinese char
/// </summary>
/// <param name="chineseChar"></param>
/// <example>
/// GetShortPinYin('福')
/// will return "F"
/// </example>
/// <returns></returns>
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
;
}
}