using System.Linq; namespace WxOrder.Framework.Commons.pinyin { public static class PinyinHelper { /// /// 判断给定字符是否是中文 /// /// /// public static bool IsChinese(char c) { return Engine.IsChinese(c); } /// /// 获取单个字符的拼音 /// /// /// public static string GetPinyin(char c) { return Engine.GetPinyinByChar(c); } /// /// 获取文本的拼音 /// /// 要获取拼音的文本 /// 单个拼音分隔符 /// public static string GetPinyin(string str, string separator = " ") { return Engine.ToPinyin(str, null, null, separator); } /// /// 获取拼音首字母 /// /// /// 拼音分割符,默认空字符串(不分割) /// public static string GetPinyinInitials(string str, string separator = "") { var result = GetPinyin(str, "|"); // 修复:获取首字母时字符串中含有|字符会报超出索引范围,https://github.com/hstarorg/TinyPinyin.Net/issues/5 return string.Join(separator, result.Split('|').Select(x => !string.IsNullOrWhiteSpace(x) && x.Length > 0 ? x.Substring(0, 1) : x).ToArray()); } } }