• 中文转拼音without CJK


    Xamarin写Android程序时,通常要使用按中文首字母分组显示(如通讯录) 。

    于是需要被迫包含CJK,不过包含后包肯定是会变大的,于是。。。。自己写了一个枚举的中文转拼音的类。

    原理是这样的:

    public class PinYinUtils
    {
        private static readonly Dictionary<string, string> PinYinDict = new Dictionary<string, string>
        {
    
            {"", "YUAN"}
            // 等............
        };
        /// <summary>
        /// Return to the first letter
        /// </summary>
        /// <param name="word">Chinese word</param>
        /// <example>
        /// GetFirstPinyinChar("张三")
        /// will return "Z"
        /// Can be used for address book index and so on
        /// </example>
        /// <returns></returns>
        public static string GetFirstPinyinChar(string word)
        {
            if (word.Length == 0) return "#";
            var firstLetter = word[0].ToString();
            if (PinYinDict.ContainsKey(firstLetter))
            {
                return PinYinDict[firstLetter];
            }
            return firstLetter;
        }
        /// <summary>
        /// return the chinese char's pinyin
        /// </summary>
        /// <param name="chineseChar"></param>
        /// <example>
        /// GetPinYin('福')
        /// will return "FU"
        /// </example>
        /// <returns></returns>
        public static string GetPinYin(char chineseChar)
        {
            var str = chineseChar.ToString();
            if (PinYinDict.ContainsKey(str))
            {
                return PinYinDict[str];
            }
            return null;
        }
        /// <summary>
        /// Get the phonetic abbreviation for Chinese char
        /// </summary>
        /// <param name="chineseChar"></param>
        /// <example>
        /// GetShortPinYin('福')
        /// will return "F"
        /// </example>
        /// <returns></returns>
        public static string GetShortPinYin(char chineseChar)
        {
            var str = chineseChar.ToString();
            if (PinYinDict.ContainsKey(str))
            {
                var first = PinYinDict[str].FirstOrDefault();
                if (first == 0) return null;
                return first.ToString();
            }
            return null;
        }
    
    }

    源码:

    https://github.com/chsword/PinYinUtil/blob/master/PinYinUtils.cs

    GITHUB:https://github.com/chsword/PinYinUtil

  • 相关阅读:
    A4988和CNC SHIELD使用方法 步进电机
    MTP 写字机器
    s*s*r备用
    VHDL 例程
    ESP8266 使用
    世界四大航海家
    第六周学习进度总结
    关于tensorflow版本报错问题的解决办法
    第五周学习进度总结
    机器学习对文本的聚类KMeans
  • 原文地址:https://www.cnblogs.com/chsword/p/xamarin_chinese_to_pinyin.html
Copyright © 2020-2023  润新知