`
conkeyn
  • 浏览: 1524862 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多

http://library.iteye.com/blog/163653

 

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;   
    }   
}  

 

分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

    Java编程实现中英混合字符串数组按首字母排序的方法

    本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...

    汉字字符串输出首字母源代码

    这篇关于“汉字字符串输出首字母源代码”的主题,主要是探讨如何从汉字字符串中提取出每个汉字的首字母,这对于构建拼音索引或者快速查找汉字具有实用价值。在中文环境下,由于汉字的多样性,直接获取首字母并不像...

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

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

    获得汉字字符串的首字母

    3. **拼音转换**:通过联接操作,找到每个汉字的拼音首字母,最后将这些首字母拼接起来,就得到了原始字符串的首字母串。 4. **模糊查询**:在实现输入首字完成模糊查询功能时,可以将用户输入的首字母与存储的首...

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

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

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

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

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

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

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

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

    java提取中文的拼音首字母

    根据输入的中文名称,把每个中文名称的拼音首字母提取出来,组合成新的大写字符串。如输入“刘德华”则转换过后得到的是“LDH”。还有我们在用酷我或者其它的搜索工具的时候,当输入“l”的时候下拉列表框中就出现了...

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

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

    汉字提取拼音首字母函数

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

    获取汉子拼音首字母

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics