提取 汉字 拼音 首字母

针对多音字不是很准确.

 


 public static void main( String[] args ) {

  System.out.println( getGBKpy( "Hi.." ) ); //非汉字不转
  System.out.println( getGBKpy( "成都" ) );
  System.out.println( getGBKpy( "重庆" ) );  //多单字不准确
 }

 

 public static String getGB2312py( String hzString ) {
  //System.out.println(GB2312PyTable.length());
  if (hzString == null || hzString.length() == 0) {
   return "";
  }
  byte eB[] = hzString.getBytes();
  String eRe = "";
  int Hz_1 = 0, Hz_2 = 0;
  int HzPos = 0;
  int pyPos = 0;
  for (int i = 0; i < eB.length; i++) {
   if (eB[i] >= 0) {
    eRe += (char) eB[i];
    HzPos = 0;
   }
   else {
    if (HzPos == 0) {
     Hz_1 = 256 + eB[i];
     HzPos++;
    }
    else if (HzPos == 1) {
     Hz_2 = 256 + (int) eB[i];
     HzPos++;
     if (HzPos == 2) {
      //System.out.println(Hz_1+"/t"+Hz_2);
      pyPos = (Hz_1 - 176) * 94 + (Hz_2 - 161);
      //System.out.println(pyPos);
      if (pyPos >= 0) {
       eRe += GB2312PyTable.charAt(pyPos);
      }
      HzPos = 0;
     }
    }
   }
  }
  return eRe;
 }

 

 /**
  * 获取GBK字的拼音的首字母
  * 由于数据较大,完整的GBK编码表按GBK规范分成3部分
  * GBK/2为与GB2312兼容的国标汉字部分,GBK/3和GBK/4为扩展汉字部分
  * 每一部分都有自己的地址计算公式
  * 若输入是acsii则返回同样的acsii
  * 若输入是中文字符则返回拼音的首字母
  * 若输入是中文字符但是该字符不知道如何发音,则返回空字符
  * @param hzString
  * @return
  */

 public static String getGBKpy(String hzString) {

  int pyi, len, no;
  int ch1code = 0, ch2code = 0;
  char ch1, ch2 ,pystr;
  String py  ;
  //快速处理
  if (hzString == null || hzString.length() == 0) {
   return "";
  }

  byte eB[] = hzString.getBytes();
  len = eB.length;

  //开始计算
  pyi = 0;
  py = "";
  while (pyi < len) {
   ch1 = (char)eB[pyi];
   pyi = pyi + 1;
   ch1code = ch1;
   if (ch1code >0 && ch1code < 129) {
    //普通的acsii
    py = py + ch1;
    continue;
   }
   else {
    //GBK字符
    ch1 = (char)(256 + (int)ch1);
    if (eB[pyi] <0 ){
     ch2 = (char)(256 + (int)eB[pyi]);
    }else{
     ch2 = (char)eB[pyi];
    }

    pyi = pyi + 1;
    if (pyi > len) {
     break;
    }
   }
   ch1code = ch1;
   ch2code = ch2;
   if (ch1code <= 160 && ch1code >= 129) {
    //查找GBK_3
    no = (ch1code - 129) * 191 + (ch2code - 63);
    pystr = gbk3.charAt(no -1 );
   }
   else if (ch1code <= 254 && ch1code >= 170) {
    //查找GBK_3
    if (ch2code > 160) {
     //查找GBK_2
     no = (ch1code - 176) * 94 + (ch2code - 160);
     pystr = gbk2.charAt(no -1);
    }
    else {
     //查找GBK_4
     no = (ch1code - 170) * 97 + (ch2code - 63);
     pystr = gbk4.charAt(no -1) ;
    }
   }
   else {
    //不是GBK汉字
    continue;
   }
   py = py + pystr;
  }
  return py.toLowerCase().trim();
 }

 

/**
  * 定义每一个汉字的拼音码_ GB2312编码的汉字
  */
 private static final String GB2312PyTable =
    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaabbbbbbbbbbbbbbbbbbbbbbbbbbbb" +
    "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" + "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" +
    "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" +
    "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" + "bbbbbbbbbbbbbbbbbbbbbbbbbbbbcccc" +
    "cccccccccccccccccccccccccccccccc" +
    "cccccccccccccccccccccccccccccccc" + "cccccccccccccccccccccccccccccccc" +
    "cccccccccccccccccccccccccccccccc" +
    "cccccccccccccccccccccccccccccccc" + "cccccccccccccccccccccccccccccccc" +
    "cccccccccccccccccccccccccccccccc" +
    "cccccddddddddddddddddddddddddddd" + "dddddddddddddddddddddddddddddddd" +
    "dddddddddddddddddddddddddddddddd" +
    "dddddddddddddddddddddddddddddddd" + "dddddddddddddddddddddddddddddddd" +
    "dddddddddddddddddddddddddddddeee" +
    "eeeeeeeeeeeeeeeeeeefffffffffffff" + "ffffffffffffffffffffffffffffffff" +
    "ffffffffffffffffffffffffffffffff" +
    "ffffffffffffffffffffffffffffffff" + "ffffffffffffffffgggggggggggggggg" +
    "gggggggggggggggggggggggggggggggg" +
    "gggggggggggggggggggggggggggggggg" + "gggggggggggggggggggggggggggggggg" +
    "gggggggggggggggggggggggggggggggg" +
    "ggggggggggghhhhhhhhhhhhhhhhhhhhh" + "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh" +
    "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh" +
    "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh" + "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh" +
    "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh" +
    "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" + "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" +
    "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" +
    "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" + "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" +
    "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" +
    "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" + "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" +
    "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj" +
    "jjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkk" + "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" +
    "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" +
    "kkkkkkkkkkklllllllllllllllllllll" + "llllllllllllllllllllllllllllllll" +
    "llllllllllllllllllllllllllllllll" +
    "llllllllllllllllllllllllllllllll" + "llllllllllllllllllllllllllllllll" +
    "llllllllllllllllllllllllllllllll" +
    "llllllllllllllllllllllllllllllll" + "llllllllllllllllllllllllllllllll" +
    "lllmmmmmmmmmmmmmmmmmmmmmmmmmmmmm" +
    "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm" + "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm" +
    "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm" +
    "mmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnn" + "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +
    "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +
    "nnnnnnnnnnnooooooooppppppppppppp" + "pppppppppppppppppppppppppppppppp" +
    "pppppppppppppppppppppppppppppppp" +
    "pppppppppppppppppppppppppppppppp" + "pppppppppppppqqqqqqqqqqqqqqqqqqq" +
    "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq" +
    "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq" + "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq" +
    "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq" +
    "qqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrr" + "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr" +
    "rrrrrsssssssssssssssssssssssssss" +
    "ssssssssssssssssssssssssssssssss" + "ssssssssssssssssssssssssssssssss" +
    "ssssssssssssssssssssssssssssssss" +
    "ssssssssssssssssssssssssssssssss" + "ssssssssssssssssssssssssssssssss" +
    "ssssssssssssssssssssssssssssssss" +
    "ssssssssssssssssssssssssssssssss" + "ssssssssssssssssssssssssssssssss" +
    "sssttttttttttttttttttttttttttttt" +
    "tttttttttttttttttttttttttttttttt" + "tttttttttttttttttttttttttttttttt" +
    "tttttttttttttttttttttttttttttttt" +
    "tttttttttttttttttttttttttttttttw" + "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww" +
    "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww" +
    "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww" + "wwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxx" +
    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +
    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +
    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +
    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +
    "xxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyy" +
    "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" + "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" +
    "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" +
    "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" + "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" +

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
minidwep-gtk-21026-cdl.tgz 网上很难找的啊,是tgz格式的啊,用于CDLinux的21026版的minidwep-gtk 新版支持的功能: 1.可以选择多种注入方式,但不能提高注入的速度,提高的是抓到合法数据包注入的机率。选择2-3种方式比较合适。 2.单独选择aireplay-ng -3,程序会在检测到有无线客户端时,自动使用deauthentication,使客户端重新连接ap,从而获得ARP包注入。 3.可以自动检测WPA加密路由是否有客户端,无客户端时自动等待。 4.当抓到握手包后,程序会提示并引导你把抓到的WPA握手包拷贝到硬盘分区目录中。 5.可以利用“跑字典”的功能,分别选择以前抓到的握手包文件和字典来搜寻key。没有加入HASH表功能。 6.自动判断系统使用的语言,显示中英文。 7. aircrack-ng 1.0不支持中文essid的虚拟连接,minidwep-gtk在BT4,CDlinux0.95,slax6.11,ubuntu9.10中 已经支持中文essid的虚拟连接。但在BT3下,minidwep-gtk可能支持atheros芯片的网卡连接中文essid, BT3中,minidwep-gtk不支持绝大部分网卡芯片虚拟连接中文essid. 8.找到密码后,会把密码和对应的ap名称,mac地址保存到/tmp目录下,以ap的mac为文件名称。 9.添加了扫描时间切换功能。点击扫描进度条时,扫描时间会在24,36,48,60秒切换。 10.增加了用字典猜测隐藏essid名称的功能,方便建立虚拟连接。字典文件位于/tmp/minidwep_essid,可以用文本编辑器编辑修改增加。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值