`
cheer_nice
  • 浏览: 103135 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java中从汉字得到拼音的函数【转载】

    博客分类:
  • j2se
阅读更多

 
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++) {
            	System.out.println(SourceStr.charAt(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;
    }
}
 
分享到:
评论

相关推荐

    汉字转换拼音 java

    在压缩包文件列表中,有两个文件:`testaa`和`JAVA汉字转换拼音`。`testaa`可能是一个测试文件,而`JAVA汉字转换拼音`可能是包含具体转换代码的Java源文件或一个项目工程。为了使用这些资源,你需要将它们解压到本地...

    java 中文转换拼音

    在Java编程语言中,中文字符转换为拼音是一个常见的需求,特别是在处理中文文本的搜索、语音合成或者数据分析等场景。这个给定的压缩包文件“languageConvert”可能包含了一个实现此功能的Java程序,使得开发者能够...

    java 取汉字拼音工具包

    Java中的汉字拼音工具包主要服务于程序开发,尤其是前端开发,用于处理汉字与拼音之间的转换,这对于构建具有中文支持的应用或网站至关重要。这类工具包能够帮助开发者轻松地将汉字转换为对应的拼音,便于进行搜索、...

    java 汉字转换拼音

    根据提供的文件信息,本文将详细解析“Java汉字转换拼音”的实现方法及原理,并结合实际代码进行分析。 ### 一、项目概述 #### 标题:Java汉字转换拼音 该标题明确指出项目的主要功能是利用Java语言实现汉字到拼音...

    一个获得汉字拼音首字母的java程序

    这一过程依赖于汉字编码范围的预先定义,即通过比较函数判断汉字属于哪个拼音首字母的范围,从而决定应添加哪个英文字母到结果字符串中。 #### 汉字与拼音映射规则 在`getBeginCharacter`方法中,可以看到一系列的...

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

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

    java获取中文拼音字母

    总之,"java获取中文拼音字母"这个主题涵盖了Java处理中文字符、Unicode编码、第三方库的使用以及多音字处理等多个知识点。实际应用中,我们需要结合具体提供的代码和工具包来理解和实现这个功能。

    oracle汉字转拼音的函数代码

    在实际应用中,汉字转拼音函数可能包括以下几个步骤: 1. **接收输入**:函数接收一个汉字字符串作为输入。 2. **编码转换**:将汉字字符串转换成Unicode编码,因为Unicode包含了汉字的拼音信息。 3. **查找拼音**...

    java中汉字得到首字母大写

    ### Java中实现汉字首字母转为大写的技巧与方法 #### 概述 在Java编程中,有时我们需要处理中文字符,并将其转换成特定格式。例如,我们可能希望将一个中文姓名转换成其拼音首字母的大写形式。这种需求在很多场景...

    oracle 获取拼音码函数

    在SQL层面,这可能涉及到创建一个PL/SQL函数,该函数调用Java存储过程,利用Java中的汉字转拼音库。 `chinese_spell.sql`这个文件很可能包含了上述的PL/SQL函数定义。函数可能接受一个汉字字符串作为输入,返回对应...

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

    总结来说,虽然Oracle自身不提供汉字转拼音的原生函数,但我们可以通过自定义存储过程结合Java代码或使用第三方PL/SQL包来实现这个功能。这两种方法各有优缺点,根据实际项目需求和环境选择合适的方法。

    oracle汉字转拼音的各种方法

    可以在Oracle中创建外部函数,利用Java或Python等编程语言的汉字转拼音库(如Java的Pinyin4j,Python的pypinyin)进行转换。这种方法灵活性高,但涉及到数据库与外部环境的交互,可能需要关注安全性和性能。 5. **...

    Java版汉字转拼音,全拼,简拼

    以下是一个简单的Java汉字转拼音的基本流程: 1. 导入必要的库:如果是使用`com.sun.tools.pinyin4j`,需要在类路径中包含对应的jar文件;如果是使用`Pinyin4j`,则需要添加对应的依赖。 2. 创建一个函数,接收...

    java中实现汉字按照拼音排序(示例代码)

    在中文环境中,`Collator`会根据中文拼音进行比较。以下是一个简单的示例,演示如何使用`Collator`对汉字字符串数组进行排序: ```java import java.text.Collator; import java.util.Arrays; public class ...

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

    接下来,我们来看HZPY.java这个文件,它可能包含了一个自定义的函数,用于获取汉字的拼音首字母。在Java中,这样的函数可能包含以下步骤: 1. **字符编码处理**:由于汉字在计算机中的存储通常使用Unicode编码,...

    关于汉字转拼音的实现方法.rar(简单方便实用)

    3. **进行转换操作**:一旦转换接口准备就绪,就可以将单个汉字或整个文本字符串作为输入,调用转换函数得到对应的拼音输出。这个过程中,库可能内部会采用字典查找、规则匹配等多种方法来确定汉字的正确拼音。 4. ...

    把汉字转为拼音

    综上所述,将汉字转换为拼音在Oracle中需要结合使用Oracle的内置函数和Java存储过程。通过`UTL_I18N.RICH_TO_RAW`转换字符编码,再借助Java的Pinyin4j库进行实际的拼音转换,我们可以高效且准确地完成汉字到拼音的...

    flex 汉字转拼音

    这个"flex汉字转拼音"的主题涉及到Flex应用中处理中文字符并转换为拼音的能力,这对于开发涉及中文语音识别、搜索优化或者用户友好界面等功能的应用程序来说非常有用。 在Flex中,处理汉字转拼音通常需要利用特定的...

    oracle获取汉字拼音首字母

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

Global site tag (gtag.js) - Google Analytics