用Java显示获取每个汉字的拼音首字母

本文介绍了一个简单的Java程序,该程序能够从用户输入的中文字符串中提取每个汉字对应的拼音首字母,实现汉字到拼音首字母的转换。通过遍历字符串并判断字符的Unicode编码范围来确定对应的拼音首字母。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. public class ChangePY {
  2.     /**
  3.      * 根据用户输出的汉字提取出每个汉字的拼音首字母
  4.      * @author Ganwb
  5.      * 
  6.      */
  7.     
  8.     private String getstring;//用户输入的字符串
  9.     private String backgetchar="";//用户输入汉字的拼音简码
  10.     
  11.     public void setGetString(String getstring){
  12.         this.getstring=getstring;
  13.         String str[]=this.getstring.split("");//将字符串转换成数组,数组第0位为""
  14.         int length=str.length;//获得数组长度
  15.         int start=1;//设置循环初始值
  16.         byte[] a=null;
  17.         String getchar="";//存储汉字拼音首字母
  18.         while(start<length){
  19.             a=str[start].getBytes();
  20.             if(a.length>1){
  21.                 int asc=256*(a[0]+256)+(a[1]+256);
  22.                 if(asc>=45217 && asc<=45252){
  23.                     getchar="A";
  24.                 }else if(asc>=45253 && asc<=45760){
  25.                     getchar="B";
  26.                 }else if(asc>=45761 && asc<=46317){
  27.                     getchar="C";
  28.                 }else if(asc>=46318 && asc<=46825){
  29.                     getchar="D";
  30.                 }else if(asc>=46826 && asc<=47009){
  31.                     getchar="E";
  32.                 }else if(asc>=47010 && asc<=47296){
  33.                     getchar="F";
  34.                 }else if(asc>=47297 && asc<=47613){
  35.                     getchar="G";
  36.                 }else if(asc>=47614 && asc<=48118){
  37.                     getchar="H";
  38.                 }else if(asc>=48119 && asc<=49061){
  39.                     getchar="J";
  40.                 }else if(asc>=49062 && asc<=49323){
  41.                     getchar="K";
  42.                 }else if(asc>=49324 && asc<=49895){
  43.                     getchar="L";
  44.                 }else if(asc>=49896 && asc<=50370){
  45.                     getchar="M";
  46.                 }else if(asc>=50371 && asc<=50613){
  47.                     getchar="N";
  48.                 }else if(asc>=50614 && asc<=50621){
  49.                     getchar="O";
  50.                 }else if(asc>=50622 && asc<=50905){
  51.                     getchar="P";
  52.                 }else if(asc>=50906 && asc<=51386){
  53.                     getchar="Q";
  54.                 }else if(asc>=51387 && asc<=51445){
  55.                     getchar="R";
  56.                 }else if(asc>=51446 && asc<=52217){
  57.                     getchar="S";
  58.                 }else if(asc>=52218 && asc<=52967){
  59.                     getchar="T";
  60.                 }else if(asc>=52698 && asc<=52979){
  61.                     getchar="W";
  62.                 }else if(asc>=52980 && asc<=53640){
  63.                     getchar="X";
  64.                 }else if(asc>=53689 && asc<=54480){
  65.                     getchar="Y";
  66.                 }else if(asc>=54481 && asc<=62289){
  67.                     getchar="Z";
  68.                 }               
  69.             }
  70.             else{
  71.                 getchar=str[start];
  72.             }
  73.             backgetchar+=getchar;
  74.             start++;
  75.         }
  76.     }
  77.     public String getGetstring() {
  78.         return getstring;
  79.     }
  80.     public String getBackgetchar() {
  81.         
  82.         return backgetchar;
  83.     }
  84.     
  85.     public static void main(String[] args) {
  86.         ChangePY cp=new ChangePY();
  87.         cp.setGetString("北京奥运");
  88.         System.out.println(cp.getGetstring());
  89.         System.out.println(cp.getBackgetchar());
  90.     }
  91. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值