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

取汉字拼音首字母

阅读更多
/**
 * Created by IntelliJ IDEA.
 * User: 裴贺先
 * Date: 2004-5-17
 * Time: 10:59:59
 * ClassDescription:取出汉字字符串的拼音首字母
 */

 

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]);
            System.out.println(table[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("A我们"));
        System.out.println(obj1.String2Alpha("裴贺先"));
        return;
    }
}

 

分享到:
评论

相关推荐

    Oracle查询取汉字拼音首字母

    Oracle查询取汉字拼音首字母Function

    取汉字拼音首字母的函数

    标题和描述中提到的“取汉字拼音首字母的函数”就是这样的一个功能,它能够帮助开发者快速地获取汉字串对应的拼音首字母。这种函数通常在中文文本处理的场景下被广泛应用。 首先,我们要理解汉字到拼音转换的基本...

    取汉字拼音首字母的Demo

    在给定的"取汉字拼音首字母的Demo"中,开发者可能遇到了这样的需求:用户界面显示一个ListView,其中的数据需要按照每个条目标题的汉字拼音首字母进行排序。这种功能常见于电话簿应用或者任何需要快速查找的列表。 ...

    取汉字拼音首字母工具源码

    标题中的“取汉字拼音首字母工具源码”指的是一个编程工具,它的主要功能是将汉字转化为对应的拼音首字母。在中文处理中,这种技术常用于快速检索、关键词提取或者建立汉字与拼音之间的索引。例如,在搜索引擎中,...

    excel中取汉字拼音首字母

    ### Excel中取汉字拼音首字母:VBA函数详解 在处理中文数据时,有时我们需要将汉字转换为其拼音的首字母,这在数据整理、排序或创建缩写时尤为有用。Excel本身并不直接支持这种功能,但通过VBA(Visual Basic for ...

    SQL取汉字拼音首字母的存储过程

    SQL取汉字拼音首字母的存储过程。对于查询汉字的很方便,不用输汉字,输入汉字拼音首字母就OK了。

    C#取汉字拼音首字母DEMO,支持多音字

    这篇关于"C#取汉字拼音首字母DEMO,支持多音字"的主题,涉及到的是使用C#编程语言来实现一个功能,该功能能够从汉字中提取出拼音的首字母,并且能够处理多音字的情况。这对于开发一些基于汉字的搜索、排序或者信息...

    取汉字拼音首字母的自定义EXCEL函数.

    取汉字拼音首字母的自定义EXCEL函数.取汉字拼音首字母的自定义EXCEL函数.

    java提取汉字拼音首字母

    java提取汉字拼音首字母的代码,简体中文的编码范围从B0A1(45217)一直到F7FE(63486),不支持多音字处理

    ORACLE中取汉字拼音首字母的存储过程

    本文将详细解析一个用于在Oracle中获取汉字拼音首字母的存储过程,该过程通过一系列精心设计的字符串转换逻辑实现。 ### 存储过程概述 存储过程名为`FUN_SPELLCODE`,它接受一个参数`PRM_SPELLIN`,类型为`VARCHAR...

    将汉字转为拼音首字母,获取取汉字拼音首字母

    本项目聚焦于实现一个功能,即将汉字转换为它们的拼音首字母,这对于信息检索、文本处理或创建搜索引擎等应用非常有用。下面将详细介绍这个功能的实现原理以及涉及到的相关知识点。 1. **汉字转拼音**: 在Delphi...

    计算机软件-商业源码-取汉字拼音首字母及五笔编码、角形码.zip

    该压缩包文件“计算机软件-商业源码-取汉字拼音首字母及五笔编码、角形码.zip”包含了用于处理汉字的计算机程序源代码。源码软件是指未经过编译和打包的原始程序代码,允许用户查看、修改和重新分发,这对于开发者来...

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

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

    pb12取汉字拼音首字母

    pb11 pb12 pb12.5 汉字 拼音 首字母

    SQL取得汉字拼音首字母

    SQL取得汉字拼音首字母SQL取得汉字拼音首字母SQL取得汉字拼音首字母SQL取得汉字拼音首字母SQL取得汉字拼音首字母

    VB.NET取汉字拼音首字母DEMO,支持多音字

    因为VB.NET不支持指针,所以VB.NET这个汉字转拼音功能只能做成PY.dll这个文件来调用。自己使用就项目&gt;添加引用&gt;添加PY.dll即可,汉字转拼音的转换函数调用方法如DEMO中的示例。。WIN10+VS2015亲测可用。

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

    ### Java 实现提取汉语字符串各汉字拼音首字母并大写 在Java中实现提取汉语字符串各汉字拼音首字母并将其转换为大写是一项常见的需求,尤其是在处理中文文本数据时。本篇文章将详细介绍如何通过Java代码来实现这一...

    【Access源码示例】--汉字转拼音首字母大写、转完整拼音

    【Access源码示例】--汉字转拼音首字母大写、转完整拼音

    PB获取汉字拼音首字母

    标题中的“PB获取汉字拼音首字母”指的是使用PowerBuilder(PB)编程语言编写的一个功能,该功能能够提取汉字的拼音首字母,特别是汉字拼音的声母部分。在中文信息处理中,有时候我们需要将汉字转化为拼音表示,特别...

    取汉字拼音首字母的存储过程

    SQL存储过程,获取汉字首字母

Global site tag (gtag.js) - Google Analytics