`

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;
    }
}
 
分享到:
评论
1 楼 595755330 2012-05-28  
问下楼主。多音字怎么处理的

相关推荐

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

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

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

    "安卓获取汉字拼音首字母工具类封装"就是一个这样的解决方案,它提供了一种便捷的方式来处理汉字与拼音之间的转换,以适配与IndexBar-master这种通讯录开源控件的配合使用。 首先,我们要理解工具类在编程中的作用...

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

    Java 获取中文拼音首字母工具类定义与用法实例 Java 获取中文拼音首字母工具类是 Java 语言中的一种工具类,用于将中文字符转换为其对应的拼音首字母。这种工具类的定义和使用方法是 Java 开发人员常用的技术之一,...

    汉字转拼音、首字母、多音字java

    在Java编程语言中,处理汉字转换为拼音、获取汉字首字母以及处理多音字的问题是一项常见的任务,尤其在中文信息处理、搜索引擎优化(SEO)或者中文输入法开发等领域。这里我们将详细探讨这些知识点。 首先,我们要...

    汉字转拼音(包含首字母)工具类

    - 这个工具类可以用于生成基于拼音的排序,比如在搜索功能中,用户可以按照关键词的拼音首字母进行快速浏览。 - 在构建URL时,将汉字转换为拼音可以让不懂中文的用户也能理解链接内容。 通过以上介绍,我们了解了...

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

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

    获取汉字拼音码首字母的工具类

    在本篇文章中,我们将详细探讨一个专门用于提取汉字拼音首字母的Java工具类——`StringUtil`。此工具类的核心功能是将输入的字符串中的每个汉字转换为其对应的拼音首字母,并返回一个由这些首字母组成的字符串。这一...

    java获取汉字的首字母

    一个常用的库是`Pinyin4j`,它是一个用于Java的中文拼音处理库,可以方便地获取汉字的全拼和首字母。 以下是一个使用`Pinyin4j`库获取汉字首字母的基本步骤: 1. **添加依赖**: 在项目中引入`Pinyin4j`库,如果是...

    oracle获取汉字拼音首字母

    在Oracle数据库中实现获取汉字拼音首字母的需求,通常涉及到对中文字符的处理以及拼音转换的技术。这样的功能可以应用于多种场景,例如数据排序、索引建立或是快速检索等。本文将详细介绍如何在Oracle环境中实现这一...

    提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

    - 拼音首字母匹配:同样需要Pinyin4j,获取汉字的首字母,构建首字母字符串,然后匹配。 3. **处理用户输入**: - 当用户在文本框中输入并按下Enter,或列表框双击/按下Enter,或按钮被点击时,启动模糊查询过程...

    java 取汉字拼音工具包

    1. **全拼与简拼**:工具包通常支持将汉字转换为完整的拼音(全拼)以及首字母缩写(简拼)。全拼提供了每个汉字的完整发音,而简拼则常用于快速输入和查找,如搜索引擎的关键词处理。 2. **声调处理**:汉语拼音有...

    Java汉字转换为拼音工具类

    Java汉字转换为拼音工具类 汉字转换为拼音包括全拼、首字母缩写;全拼可计算出多音字。

    java 提取汉字的首字母、拼音

    在Java编程中,提取汉字的首字母和拼音是一项常见的需求,尤其在中文数据处理和搜索优化方面。这里我们将深入探讨如何使用Java实现这一功能,并基于提供的`pinyin4j-2.5.0.jar`库和`Pinyin.java`源码进行讲解。 `...

    Java,获取汉字拼音、部首、笔画、笔画数目源文件、源码

    在Java编程语言中,处理汉字并获取其相关信息,如拼音、部首、笔画和笔画数目,是一项挑战性但非常实用的任务。这通常涉及到自然语言处理(NLP)和字符编码的理解。以下是对这个主题的详细阐述: 首先,我们要明白...

    Java中的输入汉字拼音首字母即自动显示数据库中相应内容

    在Java编程中,实现输入汉字拼音首字母自动显示出数据库中相应内容的功能,是常见的文本框自动补全(AutoComplete)技术的一种应用场景。这种技术通常用于提高用户输入的效率和准确性,常见于搜索引擎、输入法软件...

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

    总之,“获取汉字拼音首字母功能函数”是处理汉字的一种实用工具,它涉及到了字符编码、拼音转换和数据处理等多个方面。通过HZPY.java文件,我们可以学习到如何自定义实现这样的功能,以便在实际项目中灵活运用。

    用来获取汉字首字母的jar包

    总之,这个"用来获取汉字首字母的jar包"是一个方便的工具,它简化了汉字转拼音首字母的过程,提高了开发效率,尤其适用于需要拼音搜索的系统。在使用时,开发者应结合具体项目需求,了解并适配jar包提供的功能,确保...

    java获取汉字首字母+jar

    总的来说,这个"java获取汉字首字母+jar"的资源为Java开发者提供了一种便捷的方式来处理汉字到拼音首字母的转换,特别是对于多音字的识别,使得在处理汉字文本时能更加灵活和准确。在使用时,开发者需要了解库的API...

    30个java工具类

    [工具类] 获得汉字拼音首字母的java工具类.java.txt [工具类] 获取绝对路径 .java.txt [工具类] 记录log日志文件的工具类 .java.txt [工具类] 连接数据库的工具类 .java.txt [工具类] 使用Java程序来实现HTTP文件的...

    详解java 拼音首字母搜索内容功能的示例

    详解 Java 拼音首字母搜索内容功能的示例 ...本文通过示例代码介绍了 Java 拼音首字母搜索内容功能的实现方式,包括依赖包的引入、拼音工具类的实现和测试代码。该功能可以应用于多种场景,提高搜索效率和准确性。

Global site tag (gtag.js) - Google Analytics