`

取中文字符的拼音首字母

阅读更多

/**
* 取中文字符的拼音首字母
* @author
*/
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 = gbValue(chartable);
        }
    }

    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;
    }

    /**
    * 根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串
    * @param SourceStr
    * @return
    */
    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)
            return false;

        int j = i + 1;

        //字母Z使用了两个标签
        while (j < 26 && (table == table))
            ++j;

        if (j == 26)
            return gb <= table;
        else
            return gb < table;

    }

    /**
    * 取出汉字的编码
    */
    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("小华"));
        return;
    }
}

分享到:
评论

相关推荐

    PB 自动取字符串(汉字)的拼音首字母

    标题“PB自动取字符串(汉字)的拼音首字母”指的是在PowerBuilder(PB)这个编程环境中,实现一个功能,该功能能够将输入的汉字字符串转换为对应的拼音首字母。这在处理汉字数据时非常有用,比如创建关键词索引、搜索...

    java 取出汉语字符串各汉字拼音首字母并大写

    在Java中实现提取汉语字符串各汉字拼音首字母并将其转换为大写是一项常见的需求,尤其是在处理中文文本数据时。本篇文章将详细介绍如何通过Java代码来实现这一功能,并对相关的知识点进行深入探讨。 #### 一、需求...

    汉字提取拼音首字母函数

    3. 将所有的拼音首字母组合起来形成一个新的字符串。 这种方法在中文信息处理中非常常见,尤其是在需要进行中文名称拼音化、中文关键词拼音首字母化等场景中。 #### 六、总结 通过上述分析,我们可以看到`pinyin`...

    oracle获取汉字拼音和拼音首字母的功能函数

    总的来说,Oracle中获取汉字拼音和拼音首字母涉及了字符编码、Java编程、自定义函数、第三方工具等多个方面。开发者可以根据具体的需求和环境,选择合适的方法来实现这一功能。在处理过程中,要注意字符集的兼容性、...

    安卓获取汉字拼音首字母工具类封装

    3. **处理特殊情况**:在中文中,有一些特殊字符,如“阿”、“啊”、“一”等,它们的拼音首字母不遵循常规。工具类需要处理这些特殊情况,确保首字母的正确性。 4. **批量处理**:工具类可能还包含一个方法,接收...

    取出汉字字符串的拼音首字母

    ### 取出汉字字符串的拼音首字母:Java 实现 #### 概述 本文将详细介绍一个 Java 类 `ChineseCharToEn` 的实现方法,该类主要用于获取汉字字符串的拼音首字母。这种技术常用于需要对汉字进行快速识别或索引处理的...

    PHP获取字符串拼音首字母

    `getInitials`函数接收一个中文字符串,然后返回其拼音首字母的组合。 对于多音字的处理,`pinyin4php`库有一个强大的功能,它可以根据字典提供每个汉字的可能拼音。例如,对于汉字“好”,它可能的拼音有“hǎo”...

    取字 每个汉字的拼音首字母

    2. **中文文本分析**:在自然语言处理领域,对中文文本进行预处理时,将汉字转换为其拼音首字母可以作为一种特征提取方法,帮助模型更好地理解和分类文本。 3. **输入法优化**:现代中文输入法往往支持全拼和简拼...

    java中根据汉字字符串获取拼音首字母工具类

    java中根据汉字字符串获取拼音首字母工具类

    SQL 汉字转拼音首字母

    为了实现汉字到拼音首字母的转换功能,我们可以定义一个自定义函数,该函数接收一个包含中文字符的字符串作为输入,然后逐个字符地进行处理,最终返回一个由这些字符的拼音首字母组成的字符串。 #### 三、具体实现...

    VB获取汉字的拼音首字母

    在VB(Visual Basic)编程环境中,获取汉字的拼音首字母是一项常见的需求,特别是在处理中文数据、搜索优化或者信息分类时。这个功能可以帮助我们将汉字转换为它们对应的拼音缩写,便于计算机处理。以下将详细讲解...

    汉字转拼音及获取首字母

    - 数据排序:在列表展示中文内容时,可以按照拼音首字母进行排序,如通讯录中的姓名排序。 - 拼音输入法:输入法软件中,需要将用户输入的汉字转化为拼音,以便找到对应的键位。 总的来说,汉字转拼音及获取首...

    Qt提取汉字拼音首字母

    在本项目"Qt提取汉字拼音首字母"中,我们将探讨如何利用Qt来处理汉字与拼音之间的转换,特别是在获取汉字的拼音首字母方面。 首先,我们需要理解汉字与拼音的关系。汉字是中文的主要书写系统,而拼音是用拉丁字母来...

    JS获取中文拼音首字母,并通过拼音首字母快速查找页面内的中文内容

    在JavaScript(JS)编程中,有时我们需要处理中文字符并获取其对应的拼音首字母,以便进行各种操作,如快速查找、排序等。这个场景通常出现在构建具有搜索功能的Web应用,尤其是中文内容丰富的网站。本文将深入探讨...

    PB 提取汉字拼音首字母

    PB 提取汉字拼音首字母的功能是开发者在处理中文字符时可能会遇到的需求,尤其是在数据处理、搜索优化或者构建中文索引等方面。这个功能允许将汉字转换为其对应的拼音首字母,从而实现基于拼音的快速查找或排序。 ...

    易语言取所有首拼音字母

    "取所有首拼音字母"是易语言中一个常见的功能,主要用于从汉字字符串中提取每个汉字的首拼音字母,这对于中文信息处理、搜索关键词提取、中文排序等方面都有重要的应用。 在易语言中实现“取所有首拼音字母”的过程...

    delphi获取汉字拼音首字母可含字母数字

    我们可以使用`GetUnicodeCategory`方法来确定字符是否为汉字,或者`ToLower`/`ToUpper`来转换字符大小写,这对于处理拼音首字母很有用。 3. **汉字转拼音库**:为了将汉字转换为拼音,可以使用第三方库,如`HZK16`...

    获得汉字字符串拼音首字母

    在IT领域,特别是编程与文本处理中,获取汉字字符串的拼音首字母是一个常见的需求,尤其在中文信息处理、搜索引擎优化、排序以及数据分类等场景下。本文将详细解析如何通过编码转换和映射表的方式,从汉字字符串中...

    (完整word)excel表格汉字转拼音首字母的方法.doc

    在函数 `hzToPy` 中,我们使用字符串操作来将汉字转换为拼音首字母。我们使用 `Trim` 函数来删除字符串中的空格,然后使用 `Len` 函数来获取字符串的长度。最后,我们使用 `Mid` 函数来提取字符串中的每个字符,并将...

    汉字转全拼音或拼音首字母,支持gb2312和utf8编码

    汉字转全拼音或拼音首字母,支持gb2312和utf8编码 ,附带函数说明, 汉字转换为全拼音或拼音首字母 使用方法: include(ROOT_PATH.'includes/cls_chart_pinyin.php'); echo Pinyin('中国人','utf-8',false); 函数...

Global site tag (gtag.js) - Google Analytics