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)); }
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()); }
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); }