欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

c# 中文转拼音without CJK

时间:2021-09-23 08:46:04|栏目:.NET代码|点击:

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

上一篇:基于.net standard 的动态编译实现代码

栏    目:.NET代码

下一篇:C#中使用UDP通信的示例

本文标题:c# 中文转拼音without CJK

本文地址:http://www.codeinn.net/misctech/176955.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有