當前位置:編程學習大全網 - 編程語言 - java如何獲取漢字的拼音字母

java如何獲取漢字的拼音字母

要得到第壹個字母,需要映射漢字表和字母表。以下示例代碼基於gb2312編碼,也可以匹配gbk,utf-8編碼,但代碼完全不同。

示例代碼如下:

公共類FirstLetterUtils {

//簡體中文的編碼範圍是從B0A1(45217)到F7FE(63486)。

private static int BEGIN = 45217;

私有靜態int END = 63486

//根據首字母,此表是GB2312中的第壹個漢字,也就是說“啊”是代表首字母a的第壹個漢字。

// i,u,v不做聲母,自定義規則沿用前面的字母。

private static char[]chartable = { ' Ah ',' Ba ',' Wipe ',' Take ',' Moth ',' Hair ',' Ga ',' Ha ',' Strike ',' Ka ',' La ',' Mom ',' Take '。

//二十六個字母間隔對應二十七個端點。

// GB2312碼漢字間隔十進制表示

私有靜態int[]table = new int[27];

//對應的初始區間表

private static char[]initial table = { ' a '、' b '、' c '、' d '、' e '、' f '、' g '、' h '、' j '、' k '、' l '、' m '、' n '、' o '、' p '、' q '、' r '、' s '、' t '、' t '、' w '、' x '、' y '、' z ',};

//初始化

靜態{

for(int I = 0;我& lt26;i++) {

table[I]= GB value(chartable[I]);//獲取GB2312代碼的首字母區間端點表,十進制。

}

表[26] =結束;//間隔表結束

}

// -公共方法區域。

//根據壹個包含漢字的字符串返回壹個漢語拼音首字母的字符串,最重要的方法是:壹次讀取、判斷、輸出壹個字符。

公共靜態字符串cn2py(String SourceStr) {

字符串結果= " ";

int StrLength = sourcestr . length();

int I;

嘗試{

for(I = 0;我& ltStrLengthi++) {

result+= char 2 initial(sourcestr . charat(I));

}

} catch(異常e) {

結果= " ";

e . printstacktrace();

}

返回結果;

}

// -私有方法區域。

/**

*輸入字符得到他的首字母,英文字母返回對應的大寫字母,其他非簡體中文字符返回' 0' *

*/

私有靜態char Char2Initial(char ch) {

//英文字母的處理:小寫字母轉換成大寫,大寫字母直接返回。

if(ch & gt;= ' a ' & amp& ampch & lt= 'z') {

return(char)(ch-' A '+' A ');

}

if(ch & gt;= ' A ' & amp& ampch & lt= 'Z') {

返回ch;

}

//非英文字母的處理:轉換成首字母,然後判斷是否在碼表內。

//如果沒有,直接返回。

//如果是,在碼表中判斷。

int GB = GB value(ch);//漢字轉換首字母

如果((gb & ltBEGIN)| |(GB & gt;END))//碼表間隔前,直接返回。

{

返回ch;

}

int I;

for(I = 0;我& lt26;I++) {//判斷匹配的碼表區間,匹配就斷,區間判斷為“[,)”。

如果((gb & gt=表[I])& amp;& amp(gb & lt表[i + 1])) {

打破;

}

}

If (gb == END) {//完成GB2312的區間最右邊部分。

i = 25

}

返回initial table[I];//在碼表區間,返回第壹個字母。

}

/**

*取出漢字的編碼cn漢字

*/

private static int GB value(Charch){//將壹個中文字符(GB2312)轉換為十進制表示。

String str = new String();

str+= ch;

嘗試{

byte[]bytes = str . getbytes(" GB 2312 ");

if(bytes . length & lt;2) {

返回0;

}

return(字節[0]& lt;& lt8 & amp0xff00) +(字節[1]& amp;0x ff);

} catch(異常e) {

返回0;

}

}

公共靜態void main(String[] args)引發異常{

System.out.println(cn2py("這是壹個得到其首字母的類"));

}

}

  • 上一篇:生命教育2018秋課程總結:平凡中的偉大故事
  • 下一篇:怎麽制作蘋果系統U盤啟動盤?
  • copyright 2024編程學習大全網