取得给定汉字串的首字母串

importjava.io.UnsupportedEncodingException;

/***//**
*取得给定汉字串的首字母串,即声母串
*<p>Title:ChineseCharToEn</p>
*<p>
@authorjaverQQ:84831612</p>
*
@version1.0
*@date2004-02-19
*注:只支持GB2312字符集中的汉字
*/

publicfinalclassChineseCharToEn
...{
privatefinalstaticint[]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
}
;
privatefinalstaticString[]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"
}
;

/***//**
*取得给定汉字串的首字母串,即声母串
*
@paramstr给定汉字串
*
@return声母串
*/

publicStringgetAllFirstLetter(Stringstr)
...{
if(str==null||str.trim().length()==0)
...{
return"";
}


String_str
="";
for(inti=0;i<str.length();i++)
...{
_str
=_str+this.getFirstLetter(str.substring(i,i+1));
}


return_str;
}


/***//**
*取得给定汉字的首字母,即声母
*
@paramchinese给定的汉字
*
@return给定汉字的声母
*/

publicStringgetFirstLetter(Stringchinese)
...{
if(chinese==null||chinese.trim().length()==0)
...{
return"";
}

chinese
=this.conversionStr(chinese,"GB2312","ISO8859-1");

if(chinese.length()>1)//判断是不是汉字
...{
intli_SectorCode=(int)chinese.charAt(0);//汉字区码
intli_PositionCode=(int)chinese.charAt(1);//汉字位码
li_SectorCode=li_SectorCode-160;
li_PositionCode
=li_PositionCode-160;
intli_SecPosCode=li_SectorCode*100+li_PositionCode;//汉字区位码
if(li_SecPosCode>1600&&li_SecPosCode<5590)
...{
for(inti=0;i<23;i++)
...{
if(li_SecPosCode>=li_SecPosValue[i]&&
li_SecPosCode
<li_SecPosValue[i+1])
...{
chinese
=lc_FirstLetter[i];
break;
}

}

}

else//非汉字字符,如图形符号或ASCII码
...{
chinese
=this.conversionStr(chinese,"ISO8859-1","GB2312");
chinese
=chinese.substring(0,1);
}

}


returnchinese;
}


/***//**
*字符串编码转换
*
@paramstr要转换编码的字符串
*
@paramcharsetName原来的编码
*
@paramtoCharsetName转换后的编码
*
@return经过编码转换后的字符串
*/

privateStringconversionStr(Stringstr,StringcharsetName,StringtoCharsetName)
...{
try
...{
str
=newString(str.getBytes(charsetName),toCharsetName);
}

catch(UnsupportedEncodingExceptionex)
...{
System.out.println(
"字符串编码转换异常:"+ex.getMessage());
}


returnstr;
}

}


/***//**
*测试程序
*<p>Title:JaverTest</p>
*/

publicclassJaverTest
...{
publicstaticvoidmain(String[]args)
...{
ChineseCharToEncte
=newChineseCharToEn();
System.out.println(
""夜未眠"的首个拼音字母是:"+cte.getFirstLetter("夜未眠"));
System.out.println(
""Javer夜未眠"的首个拼音字母是:"+cte.getFirstLetter("Javer夜未眠"));
System.out.println(
""Javer夜未眠"的全部字母的拼音字母是:"+cte.getAllFirstLetter("Javer夜未眠"));
}

}


你可能感兴趣的:(汉字)