Java技术:汉字转拼音码
public class Test_unicode { /**
* @param args */
public static String getPinym(String a) { // 汉字区位码
int li_SecPosValue[] = { 1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086, 4390, 4558, 4684, 4925, 5249, 5590 }; // 存放国标一级汉字不同读音的起始区位码对应读音
char lc_FirstLetter[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z' }; // 二级字库偏移量 int ioffset = 0;
// //存放所有国标二级汉字读音 java.lang.String ls_SecondSecTable =
\ +
\BTGKJFYXJWZLTBNCXJJJJTXDTTSQZYCDXXHGCK\ +
\JYZC[J\
+ \ + \ +
\ZKBSWYEMYLTXFSYDSWLYCJQXSJNQBSCTYHBFTDCYZDJWY\ +
\YXZPYLGG[MTCFPAJJZYLJTYANJGBJPLQGDZYQY\ +
\JMMZNGMMCLGWZSZXZJFZNMLZZTHCSYDBDLLSCDD\ +
\ZGWWMZFFJQQQQYXACLBHKDJXDGMMYDJXZLLSYGX\ +
\[[TTXRYCYXBYHCSMXJSZNPWGPXXTAYBGAJCXLY\ +
\HEQQHTQH[PQ\ +
\XPJXWMYQKSMYPLRTHBXFTPMHYXLCHLHLZY\ +
\ZKZJECXJCJNMFBY[SFYWYBJZGNYSDZSQYRSLJ\ +
\GXFZFCDKHJGXDLQFSGDSLQWZKXTMHSBGZMJZRGLYJ\ +
\PMYRJCCCXFPZNZZLJPLXXYZTZLGDLDCKLYRZZGQTG\ +
\BCYAMCSTYLPDJBYREGKLZYZHLYSZQLZNWCZCLLWJQ\ +
\KQSBGBMMCJSSCLPQPDXCDYYKY[CJDDYYGYWRHJRTGZ\ +
\NLYYWDQSHZXTYYWHMZYHYWDBXBTLMSYYYFSXJC[DXX\ +
\JDXBZGSQQDDJCMBKZFFXMKDMDSYYSZCMLJDSYNSBRS\ +
\YKZDDHQHSDZSCTARLLTKZLGECLLKJLQJAQNBDKKGHP\ +
\CSEZGXLBLGYXTWMABCHECMWYJYZLLJJYHLG[DJLSLY\ +
\JDDBBLBLCZQRPPXJCJLZCSHLTOLJNMDDDLNGKAQHQH\ +
\FSYYLQBMQAMMMYXCTPSHCPTXXZZSMPHPSHMCLMLDQF\ +
\FGLZZXSWMSCCMQNJQSBDQSJTXXMBLTXZCLZSHZCXRQ\
+
\XJJLJCHCZDBZJDCZJDCPRNPQCJPFCZLCLZXZDMXMPH\ +
\KCGNNNSZFDEQFHBSAQTGYLBXMMYGSZLDYDQMJJRGBJ\
+ \ java.lang.String sreturn = \
for (int j = 0; j < a.length(); j++) { String stemp = a.substring(j, j + 1); byte[] by = stemp.getBytes(); if (by.length == 1) { sreturn = sreturn + stemp; } else {
int ia = 96 + (int) by[0]; // 区码 int ib = 96 + (int) by[1]; // 位码 int in = ia * 100 + ib; if (in > 1600 && in < 5590) { for (int i = 0; i < 24; i++) { if (in < li_SecPosValue[i]) {
sreturn = sreturn + lc_FirstLetter[i - 1]; break; } } } else {
ioffset = (ia - 56) * 94 + ib - 1; if (ioffset >= 0 && ioffset <= 3007) { sreturn = sreturn
+ ls_SecondSecTable.substring(ioffset, ioffset + 1); } } }
sreturn = sreturn.toLowerCase(); }
return sreturn; }
public static void main(String[] args) {
// TODO Auto-generated method stub 判断字符串中的汉字 /*
* String str = \中国chinese\ * System.out.println(str.substring(i, i + 1).matches( * \
*/
String s = getPinym(\安会锋\ System.out.println(s); } }
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库Java技术:汉字转拼音码在线全文阅读。
相关推荐: