Exemplo n.º 1
0
        public override IList <string> GetCodeOfString(string str, string charCodeSplit = "")
        {
            IList <string> py     = base.GetCodeOfString(str, charCodeSplit);
            var            result = new List <string>();

            for (int i = 0; i < str.Length; i++)
            {
                string p = py[i];
                result.Add(PinyinHelper.AddToneToPinyin(str[i], p));
            }
            return(result);
        }
        public override Code GetCodeOfString(string str)
        {
            var py     = base.GetCodeOfString(str);
            var result = new List <string>();

            for (int i = 0; i < str.Length; i++)
            {
                var prow = py[i];
                foreach (var p in prow)
                {
                    result.Add(PinyinHelper.AddToneToPinyin(str[i], p));
                }
            }
            return(new Code(result, true));
        }
Exemplo n.º 3
0
        private string GetPinyinWithTone(WordLibrary wl)
        {
            var sb = new StringBuilder();

            for (int i = 0; i < wl.Word.Length; i++)
            {
                char   c      = wl.Word[i];
                string py     = wl.PinYin[i];
                string pinyin = PinyinHelper.AddToneToPinyin(c, py);
                if (pinyin == null)
                {
                    throw new Exception("找不到字[" + c + "]的拼音");
                }
                sb.Append(pinyin);
                if (i != wl.Word.Length - 1)
                {
                    sb.Append(" ");
                }
            }
            return(sb.ToString());
        }
Exemplo n.º 4
0
 public override IList <string> GetCodeOfWordLibrary(WordLibrary wl, string charCodeSplit = "")
 {
     if (wl.CodeType == CodeType.Pinyin) //如果本来就是拼音输入法导入的,那么就用其拼音,不过得加上音调
     {
         IList <string> pinyin = new List <string>();
         for (int i = 0; i < wl.PinYin.Length; i++)
         {
             if (regex.IsMatch(wl.PinYin[i]))
             {
                 pinyin.Add(wl.PinYin[i]);
             }
             else
             {
                 pinyin.Add(PinyinHelper.AddToneToPinyin(wl.Word[i], wl.Codes[i][0]));
             }
         }
         return(pinyin);
     }
     else
     {
         return(base.GetCodeOfWordLibrary(wl, charCodeSplit));
     }
 }
        public override void GetCodeOfWordLibrary(WordLibrary wl)
        {
            if (wl.CodeType == CodeType.TerraPinyin)
            {
                return;
            }
            if (wl.CodeType == CodeType.Pinyin) //如果本来就是拼音输入法导入的,那么就用其拼音,不过得加上音调
            {
                for (int i = 0; i < wl.Codes.Count; i++)
                {
                    var row = wl.Codes[i];
                    for (int j = 0; j < row.Count; j++)
                    {
                        string s  = row[j];
                        string py = PinyinHelper.AddToneToPinyin(wl.Word[i], s); //add tone
                        wl.Codes[i][j] = py;
                    }
                }


                return;
            }
            base.GetCodeOfWordLibrary(wl);
        }