`
lin5061
  • 浏览: 83564 次
社区版块
存档分类
最新评论

一个有趣的汉字转成拼音声母的程序[转]

    博客分类:
  • Java
阅读更多

 

import java.lang.*;

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) {
        //System.out.println("ch-->"+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 g = new GB2Alpha();
      System.out.println("高手-->"+g.String2Alpha("高手"));
     
    }
}

 

出处:http://yangjun1120.spaces.live.com/blog/cns!F9D66F146BA5A776!184.entry#post

 

分享到:
评论

相关推荐

    汉字转拼音声母首字母 dll

    标题中的“汉字转拼音声母首字母 dll”指的是一个动态链接库(DLL)文件,它主要用于将汉字转换为对应的拼音声母首字母。在计算机编程中,DLL是一种可被多个程序共享的代码库,可以提高资源利用率并降低内存占用。...

    易语言汉字转拼音声母

    "易语言汉字转拼音声母"就是一个这样的功能模块,它能够将汉字转化为对应的拼音声母,方便后续的处理。 汉字转拼音是计算机处理中文时常见的需求,拼音声母则是其中的基础部分。声母是指汉语拼音中的辅音部分,如...

    C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母

    例如,如果一个程序需要对中文字符进行排序,或者在没有输入法的情况下通过英文键盘输入中文,汉字转拼音就显得尤为重要。 "C#汉字转拼音(npinyin)"是一个C#库,它提供了一个方便的方式来将汉字转换为对应的汉语...

    易语言汉字转拼音声母源码

    结合上述分析,我们不难发现,易语言汉字转拼音声母源码不仅仅是一个简单的编程工具,它还承载着易语言在中文信息处理领域的使命。通过对这一源码的研究和应用,我们不仅能够学习到如何实现汉字到拼音声母的转换,也...

    中文汉字转拼音 大写(默认) 小写 首字母大写

    在IT领域,中文汉字转拼音是一项常见的处理任务,特别是在自然语言处理、文本分析以及编程中。这个任务的主要目的是将汉字转换成对应的汉语拼音,以便计算机能够更好地理解和处理中文信息。以下将详细介绍汉字转拼音...

    汉字转拼音缩写(声母)

    在IT行业中,尤其是在编程领域,汉字转拼音是一个常见的需求,特别是在中文输入法的开发和文本处理应用中。这里我们关注的是一个使用C#语言实现的特定功能:将汉字转换为拼音的声母缩写。这个功能对于实现联想输入...

    汉字转化成拼音的程序

    汉字转化为拼音是计算机处理中文文本时的一个重要环节,特别是在语音合成、搜索引擎优化、自然语言处理等领域有着广泛应用。本文将深入探讨这一技术,并基于提供的压缩包文件"DXHanZiToPinYin"来讲解实现汉字转拼音...

    汉字转声母完全源代码

    7. **接口设计**:为了方便其他开发者使用,源代码可能封装成了一个类或函数,具有清晰的输入输出参数,比如接受一个汉字字符串,返回对应的声母字符串。 8. **测试与文档**:源代码应该配有详尽的测试用例和使用...

    php中文转换成拼音api

    2. **单个汉字转拼音**:一个方法接收单个汉字作为参数,返回该汉字的拼音。例如,`convertChar('中')` 返回 'zhong'。 3. **字符串转拼音**:接收一个包含多个汉字的字符串,返回每个汉字的拼音组成的数组或字符串...

    delphi函数查询汉字拼音声母

    由于汉字在计算机中是以双字节表示的,因此函数通过计算汉字的第一个和第二个字节的值来确定其所在区间,进而映射到相应的拼音声母。 #### 核心知识点二:拼音声母索引字符串查询 为了进一步提升效率和灵活性,...

    JavaScript中文转拼音,JS中文转拼音插件,中文转拼音(JavaScript)

    描述中提到,这个压缩包内包含了一个已经开发和测试完成的JS中文转拼音插件,文件包括"pyClass.js"和"zhuanPY.js",可能是一个完整的库或模块,用于实现中文到拼音的转换功能。"说明.txt"文件应该包含了使用该插件的...

    C# 汉字转换成拼音码和五笔码

    6. **用户界面**:程序可能还包括一个用户友好的界面,让用户能输入汉字并显示转换结果。这可能使用了Windows Forms或WPF等技术来创建。 7. **文件操作**:CharactExamp可能是程序的执行文件或者源代码文件,用于...

    汉字拼音转换程序

    总之,汉字拼音转换程序是一个对中文学习者极其有用的工具,它可以帮助用户理解和掌握汉字的正确发音,从而更好地学习和使用中文。通过深入理解和利用这类程序,不仅可以提高学习效率,还能增进对汉语文化的理解。

    汉字转化成拼音首字母代码delphi xe

    描述中提到的“汉字转化成拼音首字母函数”是这个程序的核心功能,它应该是一个能够接收汉字字符串并返回其拼音首字母的函数,且该函数在多个Delphi版本(如Delphi 2010、XE5、XE3、XE2)中都能正常工作。...

    汉字转换拼音 java

    标题"汉字转换拼音 Java"指的是在Java环境中开发一个程序或库,其功能是将汉字转换为它们对应的汉语拼音。这在多种场景下都非常实用,比如搜索引擎优化、语音合成、关键词提取等。Java中实现这一功能的关键在于找到...

    ry实现汉字转换成拼音代码.rar_fortyhhy_molecularc1b_ry实现汉字转换成拼音代码

    "ry实现汉字转换成拼音代码"是针对这一需求开发的一个插件,它能够将汉字转换为对应的拼音表示,方便计算机进一步处理。下面我们将深入探讨这个主题。 首先,汉字转换成拼音的基础是汉字与拼音的映射关系。每个汉字...

    delphi12 汉字转拼音全拼及简拼 XE

    1. **TCharServices组件**:Delphi提供了一个名为TCharServices的组件,它包含了多种字符服务,如汉字转拼音就是其中之一。通过CharServices.GetPinyin方法,我们可以获取一个汉字的全拼。然而,需要注意的是,...

    Oracle将汉字转换为拼音的方法

    另外,Oracle的`DBMSaccent`包提供了一个`HANPIN`过程,它可以返回一个汉字的声母、韵母和声调,但这并不直接返回完整的拼音,因此在实际应用中可能不如`UTL_I18N`包方便。 总结来说,Oracle通过`UTL_I18N`包中的`...

    oracle汉字转拼音package包-支持UTF8

    总的来说,这个"oracle汉字转拼音package包-支持UTF8"是一个非常实用的工具,可以帮助我们在Oracle数据库环境中有效地处理汉字到拼音的转换问题,尤其适用于处理UTF8编码的多语言数据。正确理解和使用这个Package,...

    java程序把汉字转换成拼音

    在这个场景中,描述中提到的"jar包"可能是指一个包含了汉字转拼音功能的第三方库,比如`pinyin4j`。 `pinyin4j`是一个流行的Java库,用于处理汉字与拼音之间的转换。这个库支持基本的汉字转拼音,包括声母、韵母、...

Global site tag (gtag.js) - Google Analytics