Esempio n. 1
0
        /// <summary>
        /// 得到指定汉字所有拼音的第一个拼音
        /// </summary>
        /// <param name="c">指定汉字</param>
        /// <param name="m">得到指定汉字的所有拼音 方法代理</param>
        /// <returns></returns>
        private static string GetFirstPinyinString(char c, ToPinyinStringArrayDelegate m)
        {
            string[] pinyinStrArray = m(c);

            if ((null != pinyinStrArray) && (pinyinStrArray.Length > 0))
            {
                return(pinyinStrArray[0]);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 指定字符串的拼音字符串
        /// </summary>
        /// <param name="str">字符串</param>
        /// <param name="spaceChar">分割字符串</param>
        /// <param name="m">得到指定汉字的所有拼音 方法代理</param>
        /// <returns></returns>
        private static string GetPinyinString(string str, string spaceChar, ToPinyinStringArrayDelegate m)
        {
            StringBuilder resultPinyinStrBuf = new StringBuilder();

            for (int i = 0; i < str.Length; i++)
            {
                string mainPinyinStrOfChar = GetFirstPinyinString(str[i], m);

                if (null != mainPinyinStrOfChar)
                {
                    resultPinyinStrBuf.AppendFormat("{0}{1}", mainPinyinStrOfChar, spaceChar);
                }
                else
                {
                    resultPinyinStrBuf.Append(str[i]);
                }
            }
            return(resultPinyinStrBuf.ToString());
        }