`
soardragon
  • 浏览: 317936 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

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

阅读更多
/**
 * Created by IntelliJ IDEA.
 * 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]);
        }
    }

    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) {
        com.mkrx.GB2Alpha obj1 = new com.mkrx.GB2Alpha();
        System.out.println(obj1.String2Alpha("测试:中华人民共和国!"));
        return;
    }
}
分享到:
评论
1 楼 gyhgc 2008-06-30  
很多汉字取不出来,为什么?

相关推荐

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

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

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

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

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

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

    匹配中文字符串的拼音首字母或英文字符串的首字母缩写,源码

    在IT行业中,中文字符串的拼音首字母匹配以及英文字符串的首字母缩写是常见的文本处理需求,尤其是在数据处理、搜索引擎优化、用户界面设计等领域。这个压缩包文件"GetHighlightAcronymLib"似乎提供了一个库或者工具...

    安卓A-Z字母排序索引相关-匹配中文字符串的拼音首字母或英文字符串的首字母缩写.rar

    这个压缩包文件“安卓A-Z字母排序索引相关-匹配中文字符串的拼音首字母或英文字符串的首字母缩写.rar”很可能包含了一系列实现这一功能的代码示例。 匹配中文字符串的拼音首字母通常涉及到以下知识点: 1. 汉字转...

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

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

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

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

    求汉字字符串的拼音首字母

    在给定的代码中,我们看到一个名为`Classfun`的C#类,该类包含一个方法`ChineseCap`,其目的是将输入的汉字字符串转换为对应的拼音首字母。这个功能在很多应用中非常有用,比如用户输入时的自动补全、关键词检索或者...

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

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

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

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

    汉字字符串拼音排序-QT、C++

    在中文环境中,由于汉字的特性,拼音排序成为一种实用的需求,特别是在需要按照汉字拼音首字母来排列字符串的场景下。"汉字字符串拼音排序-QT、C++"的主题涉及到如何在QT和C++环境中实现这样的功能。 首先,让我们...

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

    总的来说,Java中的汉字转拼音、首字母获取以及多音字处理主要依赖于像`pinyin4j`这样的第三方库,它们提供了丰富的功能,使得开发者能方便地进行中文字符的拼音处理。在实际项目中,正确理解和运用这些工具,可以...

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

    总的来说,通过结合JavaScript的字符串处理和DOM操作,我们可以实现中文拼音首字母的获取以及基于拼音首字母的页面内容查找。在实际应用中,可能还需要考虑性能优化,例如使用更高效的查找算法,或者对大量数据的...

    汉字提取拼音首字母函数

    假设我们需要处理一个包含多个汉字的字符串,并希望获取每个汉字的拼音首字母,可以通过以下步骤实现: 1. 将字符串分割成单个汉字。 2. 对每个汉字调用`pinyin`函数获取其拼音首字母。 3. 将所有的拼音首字母组合...

    获取汉子拼音首字母

    在iOS开发中,经常需要处理汉字与拼音的转换,特别是在实现UITableView的索引功能时,如果数据源包含中文,就需要将汉字转化为拼音首字母来显示在右侧的索引栏上,便于用户快速浏览和查找。标题"获取汉子拼音首字母...

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

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

    SQL 汉字转拼音首字母

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

    PB 提取汉字拼音首字母

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

    java字符串处理取出括号内的字符串

    在Java编程语言中,字符串处理是一项常见的任务,特别是在解析、分析或操作文本数据时。本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标...

    postgresql汉字转拼音首字母函数,用于批量生成助记码、拼音码,包含两万多个汉字

    postgresql汉字转拼音首字母函数,用于批量生成助记码、拼音码,包含两万多个汉字。

Global site tag (gtag.js) - Google Analytics