• 技术文章 >后端开发 >C#.Net教程

    c#中文转拼音without CJK的代码分享

    黄舟黄舟2017-03-23 11:40:08原创620
    本文主要介绍了中文转拼音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;
     }
    }

    以上就是c#中文转拼音without CJK的代码分享的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:详解基于C#的UDP协议的同步通信的示例代码 下一篇:简单介绍C#中数组、ArrayList、List、Dictionary的用法与区别
    PHP编程就业班

    相关文章推荐

    • 一文聊聊C语言中的字符串操作(大小写转换、比较、排序等)• 分享一道逻辑面试题,看看你能答对吗!• C++设计模式浅识装饰模式• SUNWEN教程之----C#进阶(三)• SUNWEN教程之----C#进阶(五)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网