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


本文摘自PHP中文网,作者黄舟,侵删。

本文主要介绍了中文转拼音without CJK,文章篇尾附上源码下载。具有一定的参考价值,下面跟着小编一起来看下吧

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

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

原理是这样的:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

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的代码分享的详细内容!

相关阅读 >>

c#cs与bs数据请求交换

C#实现网络电子白板、课件功能 (在线教学系统)

C#实现base64处理的加密解密,编码解码的示例代码

C#如何使用?C#的基本语法

详解kotlin中如何实现类似java或C#中的静态方法

C#中关于manualresetevent使用方法详解

C#devexpress gridcontrol日期行的显示格式设置详解(图文)

C#实现关闭子窗口和关闭父窗口的案例

详解C#使用litjson解析json的示例代码

C# gridcontrol的模糊查询实现代码实例

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...