获得汉字字符串的首个拼音字母的缩写

王朝other·作者佚名  2008-05-30
窄屏简体版  字體: |||超大  

标题可能不太清楚,实现的功能如下:我爱中国-WAZG

1。汉字字符与英文字母之间区别

标准的asc表不包含汉字字符,因为一个asc字符只有1byte,就是8bit,8bit所能代表的数字范围,如果是有符号的好,因该为-128-127,无符号的话,应该为0-255。而我们知道,一个汉字字符,应该占有2个byte,表示范围应该为-32768-32767,所以汉字的asc,举例一段bit: 11002111,11111101它所代表的字符,应该超过了asc所能表述的范围,这时候就会产生溢出。所以占有两个byte的汉字字符的asc码应该为负的。

2.功能实现

1using System;

2using System.Collections.Generic;

3using System.Text;

4

5namespace ConsoleApplication1

6{

7 class Program

8 {

9 static void Main(string[] args)

10 {

11 Console.WriteLine(GetChineseFirstChar("我a*%爱你中国"));;

12 }

13 static string GetChineseFirstChar(string chineseStr)

14 {

15 StringBuilder sb = new StringBuilder();

16 int length = chineseStr.Length;

17 for (int i = 0; i < length; i++)

18 {

19 char chineseChar = chineseStr[i];

20 sb.Append(GetpyChar(chineseChar));

21 }

22 return sb.ToString();

23 }

24 static string GetpyChar(char c)

25 {

26 int ascCode = Microsoft.VisualBasic.Strings.Asc(c);

27 int temp = 65536 + ascCode;

28 if (temp >= 45217 && temp <= 45252)

29 {

30 return "A";

31 }

32 else if (temp >= 45253 && temp <= 45760)

33 {

34 return "B";

35 }

36 else if (temp >= 45761 && temp <= 46317)

37 {

38 return "C";

39 }

40 else if (temp >= 46318 && temp <= 46825)

41 {

42 return "D";

43 }

44

45

46 else if (temp >= 46826 && temp <= 47009)

47 {

48 return "E";

49 }

50 else if (temp >= 47010 && temp <= 47296)

51 {

52 return "F";

53 }

54 else if (temp >= 47297 && temp <= 47613)

55 {

56 return "G";

57 }

58 else if (temp >= 47614 && temp <= 48118)

59 {

60 return "H";

61 }

62 else if (temp >= 48119 && temp <= 49061)

63 {

64 return "J";

65 }

66 else if (temp >= 49062 && temp <= 49323)

67 {

68 return "K";

69 }

70 else if (temp >= 49324 && temp <= 49895)

71 {

72 return "L";

73 }

74 else if (temp >= 49896 && temp <= 50370)

75 {

76 return "M";

77 }

78 else if (temp >= 50371 && temp <= 50613)

79 {

80 return "N";

81 }

82 else if (temp >= 50614 && temp <= 50621)

83 {

84 return "O";

85 }

86 else if (temp >= 50622 && temp <= 50905)

87 {

88 return "P";

89 }

90 else if (temp >= 50906 && temp <= 51386)

91 {

92 return "Q";

93 }

94 else if (temp >= 51387 && temp <= 51445)

95 {

96 return "R";

97 }

98 else if (temp >= 51446 && temp <= 52217)

99 {

100 return "S";

101 }

102 else if (temp >= 52218 && temp <= 52697)

103 {

104 return "T";

105 }

106 else if (temp >= 52698 && temp <= 52979)

107 {

108 return "W";

109 }

110 else if (temp >= 52980 && temp <= 53688)

111 {

112 return "X";

113 }

114 else if (temp >= 53689 && temp <= 54480)

115 {

116 return "Y";

117 }

118 else if (temp >= 54481 && temp <= 62289)

119 {

120 return "Z";

121 }

122 else

123 {

124 return c.ToString();

125 }

126 }

127 }

128}

129

http://www.cnblogs.com/jillzhang/archive/2006/10/30/544596.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航