博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中文转拼音without CJK
阅读量:6510 次
发布时间:2019-06-24

本文共 1743 字,大约阅读时间需要 5 分钟。

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

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

原理是这样的:

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

 

源码:

 

GITHUB:

 

转载地址:http://cfbfo.baihongyu.com/

你可能感兴趣的文章
LVS+keepalived+nginx
查看>>
monkey如何通过uiautomatorviewer的bounds坐标点击控件
查看>>
第22章,mysql数据库-1
查看>>
【亲测】教你如何搭建 MongoDB 复制集 + 选举原理
查看>>
虚拟化网络技术
查看>>
阿里云中间件推出全新开发者服务
查看>>
56.随机产生的id重复问题
查看>>
一个快速检测系统CPU负载的小程序
查看>>
java.lang.IllegalArgumentException: No bean specified
查看>>
Wireshark and Tcpdump tips
查看>>
第一课 计算机及操作系统基础知识
查看>>
windows2003单域迁移到2008R2服务器
查看>>
cacti相关资料网站
查看>>
我的友情链接
查看>>
网站的开发流程介绍(转)
查看>>
java面向对象中的方法重载与方法重写的区别
查看>>
浅析:Android--Fragment的懒加载
查看>>
Linux操作系统目录和Linux常用的文件和目录管理命令
查看>>
shell运算(加、减、乘、除)
查看>>
DIY:自己动手做一个迷你 Linux 系统(二)
查看>>