java获取中文拼音首字母工具类定义与用法实例

本文实例讲述了java获取中文拼音首字母工具类定义与用法。分享给大家供大家参考,具体如下:

package com.sw.documentary.common.utils;
public class GB2Alpha {
  //字母Z使用了两个标签,这里有27个值
  //i, u, v都不做声母, 跟随前面的字母
  private char[] chartable =
      {
        '啊', '芭', '擦', '搭', '蛾', '发', '噶', '哈', '哈',
        '击', '喀', '垃', '妈', '拿', '哦', '啪', '期', '然',
        '撒', '塌', '塌', '塌', '挖', '昔', '压', '匝', '座'
      };
  private char[] alphatable =
      {
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
        'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
        'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
      };
  private int[] table = new int[27];
  //初始化
  {
    for (int i = 0; i < 27; ++i) {
      table[i] = gbValue(chartable[i]);
    }
  }
  public GB2Alpha() {
  }
  //主函数,输入字符,得到他的声母,
  //英文字母返回对应的大写字母
  //其他非简体汉字返回 '0'
  public char Char2Alpha(char ch) {
    if (ch >= 'a' && ch <= 'z')
      return (char) (ch - 'a' + 'A');
    if (ch >= 'A' && ch <= 'Z')
      return ch;
    int gb = gbValue(ch);
    if (gb < table[0])
      return '0';
    int i;
    for (i = 0; i < 26; ++i) {
      if (match(i, gb)) break;
    }
    if (i >= 26)
      return '0';
    else
      return alphatable[i];
  }
  //根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串
  public String String2Alpha(String SourceStr){
    String Result = "";
    int StrLength = SourceStr.length();
    int i;
    try {
      for (i = 0; i < StrLength; i++) {
        Result += Char2Alpha(SourceStr.charAt(i));
      }
    } catch (Exception e) {
      Result = "";
    }
    return Result;
  }
  private boolean match(int i, int gb) {
    if (gb < table[i])
      return false;
    int j = i + 1;
    //字母Z使用了两个标签
    while (j < 26 && (table[j] == table[i])) ++j;
    if (j == 26)
      return gb <= table[j];
    else
      return gb < table[j];
  }
  //取出汉字的编码
  private int gbValue(char ch) {
    String str = new String();
    str += ch;
    try {
      byte[] bytes = str.getBytes("GB2312");
      if (bytes.length < 2)
        return 0;
      return (bytes[0] << 8 & 0xff00) + (bytes[1] &
          0xff);
    } catch (Exception e) {
      return 0;
    }
  }
  public static void main(String[] args) {
    GB2Alpha obj1 = new GB2Alpha();
    System.out.println(obj1.String2Alpha("我们"));
    System.out.println(obj1.String2Alpha("欢迎你"));
    return;
  }
}

运行结果:

JBZJ
HYN

PS:这里再为大家提供几款本站拼音与字母相关工具供大家参考:

在线中英文根据首字母排序工具:
http://tools.jb51.net/aideddesign/zh_paixu

在线汉字转换成拼音工具:
http://tools.jb51.net/transcoding/pinyin

在线中文汉字转拼音工具:
http://tools.jb51.net/transcoding/hanzi2pinyin

在线中文汉字拼音对照转换工具:
http://tools.jb51.net/transcoding/zh_pinyin

在线字母大小写转换工具:
http://tools.jb51.net/transcoding/upper

更多关于java相关内容感兴趣的读者可查看本站专题:《Java数组操作技巧总结》、《Java字符与字符串操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • java中文转拼音工具类详解

    本文实例为大家分享了java中文转拼音工具类的具体代码,供大家参考,具体内容如下 import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import net.sourceforge.

  • Java中汉字转拼音pinyin4j用法实例分析

    本文实例讲述了Java中汉字转拼音pinyin4j用法.分享给大家供大家参考,具体如下: 汉字转换拼音在日常开发中是个很常见的问题.例如我们伟大的12306,在地名中输入"WH",就会出现"武汉""芜湖""威海"等地名,输入"WUHU"就会出现"芜湖". Java获取汉字的拼音,pinyin4j这个库可以很好的解决这个问题. 下载地址:http://sourceforge.net/pro

  • Java获取汉字对应的拼音(全拼或首字母)

    Java 根据汉语字符串获得对应的拼音字符串或者拼音首字母字符串等操作,需要添加jar包: 引入pinyin4j-2.5.0.jar包 代码实现: import java.util.regex.Matcher; import java.util.regex.Pattern; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; im

  • Java实现将汉字转化为汉语拼音的方法

    本文实例讲述了Java实现将汉字转化为汉语拼音的方法.分享给大家供大家参考,具体如下: 网上乱转,偶然看到一个很有意思的小工具,名字叫pinyin4j,可以把汉字转换为汉语拼音,利用他的话再配合上lucene.中文分词就可以做出类似google那种输入汉语拼音进行全文检索的功能了.实现的代码如下 package pinyin4j; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.forma

  • java中将汉字转换成拼音的实现代码

    一:演示:       如在控制台输入:北京欢迎你 打印出来的拼音:bei jing huan ying ni 二:导入要依赖的jar: 汉字转换拼音jar下载 三:代码编写 复制代码 代码如下: public static String getPinYin(String src) {         char[] t1 = null;         t1 = src.toCharArray();          // System.out.println(t1.length);      

  • Java获取中文拼音、中文首字母缩写和中文首字母的示例

    我们有时候会遇到这样的情况,需要获取某些中文的拼音.中文首字母缩写和中文首字母,下面我将为大家介绍一下如何获取中文拼音的缩写. 1.项目建立和配置 首先,我们建立一个Java项目,新建libs文件夹并引入一个734a7099-4830-39f2-a136-0e850ccdcc7a.jar文件,这个步骤相信就不用详细写了,跳过. 2.获取中文拼音(如:广东省 -->guangdongsheng) </pre><pre name="code" class="

  • Java汉字转成汉语拼音工具类

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuP

  • Java获取汉字拼音的全拼和首拼实现代码分享

    import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; /** * 将汉字转化为全拼 */ public class CnToSpell1 { private static Map<String, Integer> spellMap = null; //存放生僻字和其拼音的Map private static Map<Cha

  • java获取中文拼音首字母的实例

    如下所示: import net.sourceforge.pinyin4j.PinyinHelper; public class PinyinHelperUtil { /** * 得到中文首字母(中国 -> ZG) * @param str 需要转化的中文字符串 * @return 大写首字母缩写的字符串 */ public static String getPinYinHeadChar(String str) { StringBuilder convert = new StringBuilde

  • Java实现的汉语拼音工具类完整实例

    本文实例讲述了Java实现的汉语拼音工具类.分享给大家供大家参考,具体如下: package test; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.piny

随机推荐