c# 中文转拼音without CJK

所属分类: 软件编程 / C#教程 阅读数: 86
收藏 0 赞 0 分享

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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

更多精彩内容其他人还在看

C#抽象类与抽象方法详解

这篇文章主要为大家详细介绍了C#抽象类与抽象方法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C#代码实现扑克牌排序的几种方式

今天小编就为大家分享一篇关于C#代码实现扑克牌排序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#泛型概念的简介与泛型的使用

今天小编就为大家分享一篇关于C#泛型概念的简介与泛型的使用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C# 7.0 使用下划线忽略使用的变量的原因分析

这篇文章主要介绍了C# 7.0 使用下划线忽略使用的变量的原因浅析,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C# 中使用正则表达式匹配字符的含义

正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

C# Dictionary和SortedDictionary的简介

今天小编就为大家分享一篇关于C# Dictionary和SortedDictionary的简介,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#中SQL Command的基本用法

今天小编就为大家分享一篇关于C#中SQL Command的基本用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL DataReader访问数据的优点和实例

今天小编就为大家分享一篇关于C#使用SQL DataReader访问数据的优点和实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL Dataset数据集代码实例

今天小编就为大家分享一篇关于的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL DataAdapter数据适配代码实例

今天小编就为大家分享一篇关于C#使用SQL DataAdapter数据适配代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享
查看更多