int gb = gbValue(ch);
if (gb < table[0])
return '0';
int i;
for (i = 0; i < 26; ++i) {
if (match(i, gb))
break;
}
if (i >= 26)
return '0';
else
return alphatable;
}
//根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串
public String String2Alpha(String SourceStr) {
String Result = "";
int StrLength = SourceStr.length();
int i;
try {
for (i = 0; i < StrLength; i++) {
Result += Char2Alpha(SourceStr.charAt(i));
}
} catch (Exception e) {
Result = "";
}
return Result;
}
private boolean match(int i, int gb) {
if (gb < table)
return false;
int j = i + 1;
//字母Z使用了两个标签
while (j < 26 && (table[j] == table))
++j;
//将单个汉字转换成拼音缩写
public? String GetPYChar(String c)
{
byte[] array = new byte[2];
//System.out.println(c);
array = c.getBytes();
int i = (short)(array[0] ) * 256 + ((short)(array[1] ));
??
if ( i < -20575) return c;
else if ( i < -20539) return "a";
else? if ( i < -20031) return "b";
else? if ( i < -19474) return "c";
else? if ( i < -18966) return "d";
else? if ( i < -18782) return "e";
else? if ( i < -18495) return "f";
else? if ( i < -18178) return "g";
else? if ( i < -17673) return "h";
else? if ( i < -16730) return "j";
else? if ( i < -16468) return "k";
else? if ( i < -15896) return "l";
else? if ( i < -15421) return "m";
else? if ( i < -15178) return "n";
else? if ( i < -15170) return "o";
else? if ( i < -14886) return "p";
else? if ( i < -14405) return "q";
else? if ( i < -14346) return "r";
else? if ( i < -13574) return "s";
else? if ( i < -13094) return "t";
else? if ( i < -12812) return "w";
else? if ( i < -12103) return "x";
else? if ( i < -11311) return "y";
else? if ( i < -10503) return "z";
return "";
}作者: 摩登大圣 时间: 2007-4-26 15:43:45