Dapatkan singkatan huruf pinyin pertama dari string karakter Cina
Penulis:Eve Cole
Waktu Pembaruan:2009-07-01 16:08:11
Judulnya mungkin kurang jelas, namun fungsi yang diterapkan adalah sebagai berikut: I Love China-WAZG
1. Perbedaan antara karakter Cina dan huruf Inggris
Tabel asc standar tidak berisi karakter Cina, karena karakter asc hanya memiliki 1 byte, yaitu 8 bit. Kisaran angka yang dapat diwakili oleh 8 bit. Jika ditandatangani, seharusnya -128-127 tidak ditandatangani, seharusnya 0-255. Dan kita tahu bahwa karakter Cina harus menempati 2 byte, dan rentang representasi harus -32768-32767, jadi asc karakter Cina, misalnya sedikit: 11002111,11111101, karakter yang diwakilinya harus melebihi rentang asc dapat mengungkapkan, maka akan terjadi luapan. Oleh karena itu, kode asc karakter Cina yang menempati dua byte harus negatif.
2. Implementasi fungsi
1menggunakan Sistem;
2menggunakan System.Collections.Generic;
3menggunakan System.Text;
4
5Aplikasi Konsol namespace1
6{
7 program kelas
8 {
9 kekosongan statis Utama (string[] args)
10 {
11 Console.WriteLine(GetChineseFirstChar("Aku*% mencintaimu Tiongkok");;
12}
13 string statis GetChineseFirstChar(string chineseStr)
14 {
15 StringBuilder sb = StringBuilder baru();
16 int panjang = chineseStr.Panjang;
17 untuk (int i = 0; i < panjang; i++)
18 {
19 karakter chineseChar = chineseStr[i];
20 sb.Tambahkan(GetpyChar(chineseChar));
dua puluh satu }
22 kembalikan sb.ToString();
dua puluh tiga }
24 string statis GetpyChar(char c)
25 {
26 int ascCode = Microsoft.VisualBasic.Strings.Asc(c);
27 int suhu = 65536 + kode asc;
28 jika (suhu >= 45217 && suhu <= 45252)
29 {
30 kembalikan "A";
31}
32 else if (suhu >= 45253 && suhu <= 45760)
33 {
34 kembalikan "B";
35}
36 else if (suhu >= 45761 && suhu <= 46317)
37 {
38 mengembalikan "C";
39 }
40 else if (suhu >= 46318 && suhu <= 46825)
41 {
42 kembalikan "D";
43}
44
45
46 else if (suhu >= 46826 && suhu <= 47009)
47 {
48 kembalikan "E";
49 }
50 else if (suhu >= 47010 && suhu <= 47296)
51 {
52 mengembalikan "F";
53}
54 else if (suhu >= 47297 && suhu <= 47613)
55 {
56 mengembalikan "G";
57 }
58 lain jika (suhu >= 47614 && suhu <= 48118)
59 {
60 mengembalikan "H";
61 }
62 lain jika (suhu >= 48119 && suhu <= 49061)
63 {
64 kembalikan "J";
65 }
66 else if (suhu >= 49062 && suhu <= 49323)
67 {
68 mengembalikan "K";
69 }
70 else if (suhu >= 49324 && suhu <= 49895)
71 {
72 kembalikan "L";
73}
74 else if (suhu >= 49896 && suhu <= 50370)
75 {
76 mengembalikan "M";
77 }
78 else if (suhu >= 50371 && suhu <= 50613)
79 {
80 mengembalikan "N";
81 }
82 else if (suhu >= 50614 && suhu <= 50621)
83 {
84 mengembalikan "O";
85}
86 else if (suhu >= 50622 && suhu <= 50905)
87 {
88 mengembalikan "P";
89 }
90 else if (suhu >= 50906 && suhu <= 51386)
91 {
92 mengembalikan "Q";
93}
94 else if (suhu >= 51387 && suhu <= 51445)
95 {
96 mengembalikan "R";
97 }
98 else if (suhu >= 51446 && suhu <= 52217)
99 {
100 pengembalian "S";
101 }
102 else if (suhu >= 52218 && suhu <= 52697)
103 {
104 kembalikan "T";
105 }
106 else if (suhu >= 52698 && suhu <= 52979)
107 {
108 mengembalikan "W";
109 }
110 else if (suhu >= 52980 && suhu <= 53688)
111 {
112 mengembalikan "X";
113 }
114 else if (suhu >= 53689 && suhu <= 54480)
115 {
116 mengembalikan "Y";
117 }
118 else if (suhu >= 54481 && suhu <= 62289)
119 {
120 mengembalikan "Z";
121 }
122 lainnya
123 {
124 kembalikan c.ToString();
125 }
126 }
127 }
128}
129
http://www.cnblogs.com/jillzhang/archive/2006/10/30/544596.html