public void SetKeys(List <string> keys) { if (keys != null && keys.Any()) { var allKeys = new List <string>(); foreach (var k in keys) { allKeys.Add(k); // 增加词汇 allKeys.Add(WordsHelper.ToTraditionalChinese(k)); // 增加繁体 allKeys.Add(WordsHelper.GetPinyin(k)); // 增加拼音 } IllegalWordsSearch.SetKeywords(allKeys); } }
/// <summary> /// 结果管道 /// </summary> /// <param name="result"></param> /// <returns></returns> public string ResultPipe(string result) { if (result.IsNullOrWhiteSpace()) { return(result); } if (Reverse == "all") { result = ReverseStr(result); } else if (Reverse == "row") { result = ReverseStr(result, true); } if (WordsHelper.HasChinese(result)) { if (ToTraditionalChinese) { result = WordsHelper.ToTraditionalChinese(result); } else if (ToSimplifiedChinese) { result = WordsHelper.ToSimplifiedChinese(result); } else if (ToPinyin != null) { result = WordsHelper.GetPinyin(result, ToPinyin.Equals("tone", StringComparison.OrdinalIgnoreCase)); } else if (ToFirstPinyin) { result = WordsHelper.GetFirstPinyin(result)?.ToLower(); } } if (Lower) { result = result?.ToLower(); } else if (Upper) { result = result?.ToUpper(); } if (SpeakWithWhiteSpace) { result = ToSpeakWithWhiteSpace(result); } return(result); }
static void Main(string[] args) { Console.WriteLine("ToolGood.Words.Core Test!"); Console.WriteLine("1.文本转换"); //繁体转简体 Console.WriteLine($"繁体转简体:壹佰贰拾叁億肆仟伍佰陆拾柒萬捌仟玖佰零壹元壹角贰分->{WordsHelper.ToSimplifiedChinese("壹佰贰拾叁億肆仟伍佰陆拾柒萬捌仟玖佰零壹元壹角贰分")}"); //简体转繁体 Console.WriteLine($"简体转繁体:壹佰贰拾叁亿肆仟伍佰陆拾柒万捌仟玖佰零壹元壹角贰分->{WordsHelper.ToTraditionalChinese("壹佰贰拾叁亿肆仟伍佰陆拾柒万捌仟玖佰零壹元壹角贰分")}"); //半角转全角 Console.WriteLine($"半角转全角:abc123->{WordsHelper.ToSBC("abcABC123")}"); //全角转半角 Console.WriteLine($"全角转半角:abcABC123->{WordsHelper.ToDBC("abcABC123")}"); // 数字转成中文大写 Console.WriteLine($"数字转成中文大写:12345678901.12->{WordsHelper.ToChineseRMB(12345678901.12)}"); //汉字转拼音 Console.WriteLine($"汉字转拼音:我爱中国->{WordsHelper.GetPinYin("我爱中国")}"); //获取汉字拼音首字母 Console.WriteLine($"获取汉字拼音首字母:我爱中国->{WordsHelper.GetFirstPinYin("我爱中国")}"); //获取多音字全部拼音 Console.WriteLine($"获取多音字全部拼音:强->{string.Join(",", WordsHelper.GetAllPinYin('强').ToArray())}"); Console.WriteLine("------------------------------------------------"); Console.WriteLine("2.拼音模糊搜索"); Console.WriteLine("原文本:阿根廷,澳大利亚,比利时,玻利维亚,巴西,白俄罗斯,加拿大,智利,中国,哥伦比亚,哥斯达黎加,古巴,捷克斯洛伐克,丹麦,多米尼加共和国,厄瓜多尔,埃及,萨尔瓦多,埃塞俄比亚,法国,希腊,危地马拉,海地,洪都拉斯,印度,伊朗,伊拉克,黎巴嫩,利比里亚,卢森堡,墨西哥,荷兰,新西兰,尼加拉瓜,挪威,巴拿马,巴拉圭,秘鲁,菲律宾,波兰,俄罗斯联邦,沙特阿拉伯,南非,阿拉伯叙利亚共和国,土耳其,乌克兰,大不列颠及北爱尔兰联合王国,美利坚合众国,乌拉圭,委内瑞拉,南斯拉夫,阿富汗,冰岛,瑞典,泰国,巴基斯坦,也门,缅甸,以色列,印度尼西亚,阿尔巴尼亚,澳地利,保加利亚,柬埔寨,芬兰,匈牙利,爱尔兰,意大利,约旦,老挝人民民主共和国,罗马利亚,西班牙,斯里兰卡,阿拉伯利比亚民众国,尼泊尔,葡萄牙,日本,摩洛哥,苏丹,突尼斯,加纳,马来西亚,几内亚,贝宁,布基纳法索,喀麦隆,中非共和国,乍得,刚果,科特迪瓦,塞浦路斯,加蓬,马达加斯加,马里,尼日尔,尼日利亚,塞内加尔,索马里,多哥,刚果民主共和国,毛里塔尼亚,蒙古,塞拉利昂,坦桑尼亚联合共和国,阿尔及利亚,布隆迪,牙买加,卢旺达,特立尼达和多巴哥,乌干达,肯尼亚,科威特,马拉维,马耳他,赞比亚,冈比亚,马尔代夫,新加坡,巴巴多斯,博茨瓦纳,圭亚那,莱索托,民主也门,赤道几内亚,毛里求斯,斯威士兰,斐济,巴林,不丹,阿曼,卡塔尔,阿拉伯联合酋长国,巴哈马,德意志联邦共和国,德意志民主共和国,孟加拉国,格林纳达,几内亚比绍,佛得角,科摩罗,莫桑比克,巴布亚新几内亚,圣多美和普林西比多米尼加,所罗门群岛,苏里南,安哥拉,萨摩亚,塞舌尔,吉布提,越南,圣卢西亚,圣文森特和格林纳丁斯,津巴布韦,安提瓜和巴布达,伯利兹,瓦努阿图,圣基茨和尼维斯,文莱达鲁萨兰国,列支敦士登,纳米比亚,朝鲜民主主义人民共和国,爱沙尼亚,密克罗尼西亚联邦,拉脱维亚,立陶宛,马绍尔群岛,大韩民国,亚美尼亚,阿塞拜疆,波斯尼亚和黑塞哥维那,克罗地亚,格鲁吉亚,哈萨克斯坦,吉尔吉斯,摩尔多瓦,圣马力诺,斯洛文尼亚,塔吉克斯坦,土库曼斯坦,乌兹别克斯坦,安道尔,捷克共和国,厄立特里亚,摩纳哥,斯洛伐克共和国,前南斯拉夫的马其顿共和国,帕劳,基里巴斯共和国,瑙鲁,汤加,图瓦卢,南斯拉夫,瑞士,东帝汶"); var text = "阿根廷,澳大利亚,比利时,玻利维亚,巴西,白俄罗斯,加拿大,智利,中国,哥伦比亚,哥斯达黎加,古巴,捷克斯洛伐克,丹麦,多米尼加共和国,厄瓜多尔,埃及,萨尔瓦多,埃塞俄比亚,法国,希腊,危地马拉,海地,洪都拉斯,印度,伊朗,伊拉克,黎巴嫩,利比里亚,卢森堡,墨西哥,荷兰,新西兰,尼加拉瓜,挪威,巴拿马,巴拉圭,秘鲁,菲律宾,波兰,俄罗斯联邦,沙特阿拉伯,南非,阿拉伯叙利亚共和国,土耳其,乌克兰,大不列颠及北爱尔兰联合王国,美利坚合众国,乌拉圭,委内瑞拉,南斯拉夫,阿富汗,冰岛,瑞典,泰国,巴基斯坦,也门,缅甸,以色列,印度尼西亚,阿尔巴尼亚,澳地利,保加利亚,柬埔寨,芬兰,匈牙利,爱尔兰,意大利,约旦,老挝人民民主共和国,罗马利亚,西班牙,斯里兰卡,阿拉伯利比亚民众国,尼泊尔,葡萄牙,日本,摩洛哥,苏丹,突尼斯,加纳,马来西亚,几内亚,贝宁,布基纳法索,喀麦隆,中非共和国,乍得,刚果,科特迪瓦,塞浦路斯,加蓬,马达加斯加,马里,尼日尔,尼日利亚,塞内加尔,索马里,多哥,刚果民主共和国,毛里塔尼亚,蒙古,塞拉利昂,坦桑尼亚联合共和国,阿尔及利亚,布隆迪,牙买加,卢旺达,特立尼达和多巴哥,乌干达,肯尼亚,科威特,马拉维,马耳他,赞比亚,冈比亚,马尔代夫,新加坡,巴巴多斯,博茨瓦纳,圭亚那,莱索托,民主也门,赤道几内亚,毛里求斯,斯威士兰,斐济,巴林,不丹,阿曼,卡塔尔,阿拉伯联合酋长国,巴哈马,德意志联邦共和国,德意志民主共和国,孟加拉国,格林纳达,几内亚比绍,佛得角,科摩罗,莫桑比克,巴布亚新几内亚,圣多美和普林西比多米尼加,所罗门群岛,苏里南,安哥拉,萨摩亚,塞舌尔,吉布提,越南,圣卢西亚,圣文森特和格林纳丁斯,津巴布韦,安提瓜和巴布达,伯利兹,瓦努阿图,圣基茨和尼维斯,文莱达鲁萨兰国,列支敦士登,纳米比亚,朝鲜民主主义人民共和国,爱沙尼亚,密克罗尼西亚联邦,拉脱维亚,立陶宛,马绍尔群岛,大韩民国,亚美尼亚,阿塞拜疆,波斯尼亚和黑塞哥维那,克罗地亚,格鲁吉亚,哈萨克斯坦,吉尔吉斯,摩尔多瓦,圣马力诺,斯洛文尼亚,塔吉克斯坦,土库曼斯坦,乌兹别克斯坦,安道尔,捷克共和国,厄立特里亚,摩纳哥,斯洛伐克共和国,前南斯拉夫的马其顿共和国,帕劳,基里巴斯共和国,瑙鲁,汤加,图瓦卢,南斯拉夫,瑞士,东帝汶"; PinYinSearch search = new PinYinSearch(); search.SetKeywords(text.Split(',').ToList()); Console.WriteLine(""); Console.WriteLine($"搜索 ad:{string.Join(",", search.SearchTexts("ad", true).ToArray())}"); //安道尔,澳大利亚,澳地利 Console.WriteLine($"搜索 白e:{string.Join(",", search.SearchTexts("白e", true).ToArray())}"); //白俄罗斯 Console.WriteLine($"搜索 baie:{string.Join(",", search.SearchTexts("baie", true).ToArray())}"); //白俄罗斯 Console.WriteLine($"搜索 bai俄:{string.Join(",", search.SearchTexts("bai俄", true).ToArray())}"); //白俄罗斯 Console.ReadKey(); }
public void ToTraditionalChinese() { var tw = WordsHelper.ToTraditionalChinese("壹佰贰拾叁亿肆仟伍佰陆拾柒万捌仟玖佰零壹元壹角贰分"); Assert.AreEqual("壹佰貳拾叄億肆仟伍佰陸拾柒萬捌仟玖佰零壹元壹角貳分", tw); var tw2 = WordsHelper.ToTraditionalChinese("原代码11", 2); Assert.AreEqual("原始碼11", tw2); var tw3 = WordsHelper.ToTraditionalChinese("反反复复", 2); Assert.AreEqual("反反覆覆", tw3); var tw4 = WordsHelper.ToTraditionalChinese("这人考虑事情总是反反复复的", 2); Assert.AreEqual("這人考慮事情總是反反覆覆的", tw4); var tw5 = WordsHelper.ToTraditionalChinese("计算发现", 2); }
public void ToTraditionalChinese() { var tw = WordsHelper.ToTraditionalChinese("壹佰贰拾叁亿肆仟伍佰陆拾柒万捌仟玖佰零壹元壹角贰分"); Assert.AreEqual("壹佰貳拾叁億肆仟伍佰陸拾柒萬捌仟玖佰零壹元壹角貳分", tw); }
public string ToTraditional(string str = null) { return(ResultPipe(WordsHelper.ToTraditionalChinese(str))); }
/// <summary> /// 转成繁体中文 /// </summary> /// <param name="source">简体中文</param> /// <param name="type">0、繁体中文,1、港澳繁体,2、台湾正体</param> /// <returns></returns> private string ToTraditionalChineseInternal(string source, int type) { return(WordsHelper.ToTraditionalChinese(source, type)); }
static void Main(string[] args) { // 转成简体 var str = WordsHelper.ToSimplifiedChinese("壹佰贰拾叁億肆仟伍佰陆拾柒萬捌仟玖佰零壹元壹角贰分"); Console.WriteLine(str); // 转成繁体 var str2 = WordsHelper.ToTraditionalChinese("壹佰贰拾叁亿肆仟伍佰陆拾柒万捌仟玖佰零壹元壹角贰分"); Console.WriteLine(str2); // 转成全角 var str3 = WordsHelper.ToSBC("abcABC123"); Console.WriteLine(str3); // 转成半角 var str4 = WordsHelper.ToDBC("abcABC123"); Console.WriteLine(str4); // 数字转成中文大写 var str5 = WordsHelper.ToChineseRMB(12345678901.12); Console.WriteLine(str5); // 中文转成数字 var str6 = WordsHelper.ToNumber("壹佰贰拾叁亿肆仟伍佰陆拾柒万捌仟玖佰零壹元壹角贰分"); Console.WriteLine(str6); // 获取全拼 var str7 = WordsHelper.GetPinyin("我爱中国"); Console.WriteLine(str7); // 获取首字母 var str8 = WordsHelper.GetFirstPinyin("我爱中国"); Console.WriteLine(str8); // 获取全部拼音 var str9 = WordsHelper.GetAllPinyin('传'); Console.WriteLine(str9); // 获取姓名 var str10 = WordsHelper.GetPinyinForName("单一一"); Console.WriteLine(str10); var str11 = WordsHelper.GetPinyinForName("单一一", ","); Console.WriteLine(str11); var str12 = WordsHelper.GetPinyinForName("单一一", true); Console.WriteLine(str12); string s = "北京|天津|河北|辽宁|吉林|黑龙江|山东|江苏|上海|浙江|安徽|福建|江西|广东|广西|海南|河南|湖南|湖北|山西|内蒙古|宁夏|青海|陕西|甘肃|新疆|四川|贵州|云南|重庆|西藏|香港|澳门|台湾"; PinyinMatch match = new PinyinMatch(); match.SetKeywords(s.Split('|').ToList()); var all = match.Find("BJ"); Console.WriteLine(all[0]); Console.WriteLine(all.Count); all = match.Find("北J"); Console.WriteLine(all[0]); Console.WriteLine(all.Count); }