1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java获取汉字的拼音首字母_java获取汉字的拼音首字母

java获取汉字的拼音首字母_java获取汉字的拼音首字母

时间:2023-09-18 23:37:45

相关推荐

java获取汉字的拼音首字母_java获取汉字的拼音首字母

importjava.io.UnsupportedEncodingException;

/**

*取得给定汉字串的首字母串,即声母串

*Title:ChineseCharToEn

*@date-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=_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

for(inti=0;i

if(li_SecPosCode>=li_SecPosValue[i]

&&li_SecPosCode

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;

}

publicstaticvoidmain(String[]args){

ChineseCharToEncte=newChineseCharToEn();

System.out.println("获取拼音首字母:"+cte.getAllFirstLetter("北京联席办"));

}

}

控制台输出 获取首字母:bjlxb

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。