Beispiel #1
0
        /// <summary>
        /// 获得一个词的拼音
        /// </summary>
        /// <param name="str"></param>
        /// <param name="split">拼音间的分隔符</param>
        /// <returns></returns>
        public List <string> GetPinYinOfString(string str, string split)
        {
            List <string> pinyinList = new List <string>();
            List <string> pinyin     = MutiPinYinWord.GenerateMutiWordPinYin(str);

            for (int i = 0; i < str.Length; i++)
            {
                List <string> py = new List <string>();
                if (string.IsNullOrEmpty(pinyin[i]))
                {
                    py = GetPinYinOfChar(str[i]);
                }
                else
                {
                    py.Add(pinyin[i]);
                }
                if (pinyinList.Count == 0)
                {
                    py.ForEach(delegate(string p)
                    {
                        pinyinList.Add(p + split);
                    });
                }
                else//不是第一个字
                {
                    List <string> newString = new List <string>();
                    foreach (string p in py)
                    {
                        string charPy = p + split;


                        pinyinList.ForEach(delegate(string s)
                        {
                            newString.Add(s + charPy);
                        });
                    }
                    pinyinList = newString;
                }
            }
            return(pinyinList);
        }
Beispiel #2
0
        /// <summary>
        /// 获得一个词的所有拼音组合
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public override List <List <string> > GetPinYinListOfString(string str)
        {
            var           pyList = new List <List <string> >();
            List <string> pys    = MutiPinYinWord.GenerateMutiWordPinYin(str);

            for (int i = 0; i < str.Length; i++)
            {
                if (string.IsNullOrEmpty(pys[i]))
                {
                    try
                    {
                        pys[i] = dic[str[i]];
                    }
                    catch //给定的字没有对应的拼音
                    {
                        pys[i] = "";
                    }
                }
            }
            pyList.Add(pys);
            return(pyList);
        }