`
dingyifan
  • 浏览: 2027 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【转载】获取汉字首字母(JAVA)

阅读更多
package com.saic.ebiz;

public class AppTest {

	// 简体中文的编码范围从B0A1(45217)一直到F7FE(63486)
	private static int BEGIN = 45217;
	private static int END = 63486;

	// 按照声 母表示,这个表是在GB2312中的出现的第一个汉字,也就是说“啊”是代表首字母a的第一个汉字。
	// i, u, v都不做声母, 自定规则跟随前面的字母
	private static char[] chartable = { '啊', '芭', '擦', '搭', '蛾', '发', '噶', '哈', '哈', '击', '喀', '垃', '妈', '拿', '哦', '啪', '期', '然', '撒', '塌', '塌', '塌', '挖', '昔', '压', '匝', };

	// 二十六个字母区间对应二十七个端点
	// GB2312码汉字区间十进制表示
	private static int[] table = new int[27];

	// 对应首字母区间表
	private static char[] initialtable = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 't', 't', 'w', 'x', 'y', 'z', };

	// 初始化
	static {
		for (int i = 0; i < 26; i++) {
			table[i] = gbValue(chartable[i]);// 得到GB2312码的首字母区间端点表,十进制。
		}
		table[26] = END;// 区间表结尾
	}

	// ------------------------public方法区------------------------
	// 根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串 最重要的一个方法,思路如下:一个个字符读入、判断、输出

	public static String cn2py(String SourceStr) {
		String Result = "";
		int StrLength = SourceStr.length();
		int i;
		try {
			for (i = 0; i < StrLength; i++) {
				Result += Char2Initial(SourceStr.charAt(i));
			}
		} catch (Exception e) {
			Result = "";
			e.printStackTrace();
		}
		return Result;
	}

	// ------------------------private方法区------------------------
	/**
	 * 输入字符,得到他的声母,英文字母返回对应的大写字母,其他非简体汉字返回 '0'   *   
	 */
	private static char Char2Initial(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 < BEGIN) || (gb > END))// 在码表区间之前,直接返回
		{
			return ch;
		}
		int i;
		for (i = 0; i < 26; i++) {// 判断匹配码表区间,匹配到就break,判断区间形如“[,)”
			if ((gb >= table[i]) && (gb < table[i + 1])) {
				break;
			}
		}
		if (gb == END) {// 补上GB2312区间最右端
			i = 25;
		}
		return initialtable[i]; // 在码表区间中,返回首字母
	}

	/**
	 * 取出汉字的编码 cn 汉字   
	 */
	private static int gbValue(char ch) {// 将一个汉字(GB2312)转换为十进制表示。
		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;
		}
	}
}

 

分享到:
评论

相关推荐

    用来获取汉字首字母的jar包

    这个"用来获取汉字首字母的jar包"显然提供了一个解决方案,它能够帮助我们快速地将汉字转换为对应的拼音首字母,从而实现基于拼音首字母的查询功能。 首先,我们要理解汉字到拼音转换的基本概念。在中国,每个汉字...

    java中根据汉字字符串获取拼音首字母工具类

    java中根据汉字字符串获取拼音首字母工具类

    java中汉字得到首字母大写

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

    java获取汉字的首字母

    一个常用的库是`Pinyin4j`,它是一个用于Java的中文拼音处理库,可以方便地获取汉字的全拼和首字母。 以下是一个使用`Pinyin4j`库获取汉字首字母的基本步骤: 1. **添加依赖**: 在项目中引入`Pinyin4j`库,如果是...

    c# 获取汉字首字母(含多音字)

    在方法内部,遍历每个汉字,使用库提供的API获取该汉字的所有可能的拼音,并提取首字母。对于多音字,可能会得到多个拼音结果,所以需要对每个拼音都提取首字母。 以下是一个简单的伪代码示例: ```csharp using ...

    java提取汉字首字母

    在Java编程中,提取汉字首字母是一项常见的任务,特别是在处理汉字数据、建立索引或进行拼音搜索时。这个任务涉及到字符编码、Unicode和中文字符处理。以下是对这一知识点的详细阐述: 1. **字符编码**:汉字在...

    Java 获取汉字的拼音或汉字首字母

    Java 获取汉字的拼音或汉字首字母在Java中获取汉字的拼音或汉字首字母是一个有挑战性的任务,因为汉字没有像拉丁字母那样的标准编码方案。不过,有一些第三方库可以简化这个过程。汉字拼音库是一个常用的库,它可以...

    C# 获取汉字首字母

    为了支持整个字符串中所有汉字的拼音首字母获取,还需要编写一个额外的方法来处理字符串中的每个汉字: ```csharp public static string GetStringSpell(string str) { char[] chars = str.ToCharArray(); string...

    使用javascript获取汉字首字母

    随着现代浏览器的发展,更多的解决方案已经出现,如使用第三方库(如pinyin.js)或者利用WebAssembly引入C++编译的拼音库来实现跨浏览器的汉字首字母获取。 总之,“使用javascript获取汉字首字母”是一项在特定...

    汉字转拼音及获取首字母

    在IT行业中,尤其是在开发中文应用时,汉字转拼音和获取首字母是常见的需求。这个示例程序正是针对这一需求而设计的,适用于iOS平台。在iOS应用开发中,可能需要处理用户输入的汉字,将其转化为拼音,以便进行关键词...

    获取汉字首字母,根据汉字获取首字母。

    获取汉字首字母,//获得字符串拼音首字母 public static string GetStrletter(string DWletter) { string Strletter = GetChineseSpell(DWletter); return Strletter; }

    java 获取汉字拼音首字母 源码

    java 获取汉字拼音首字母 源码 /** * GB 2312-80 把收录的汉字分成两级。第一级汉字是常用汉字,计 3755 个, 置于 16~55 * 区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字, 计 3008 个,置于 56~...

    java提取汉字拼音首字母

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

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

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

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

    6. **拼音首字母获取** 获取汉字的拼音首字母相对简单,因为大多数汉字的拼音首字母是固定的。可以创建一个映射表,存储每个汉字对应的首字母,然后通过查找表来快速获取。对于多音字,可能需要额外处理,选择最...

    PB获取汉字拼音首字母

    - `getfirst.exe`:这很可能是编译后的可执行文件,用户可以通过运行这个文件来直接体验或测试这个汉字拼音首字母获取的功能。 - `getfirst.pbl`:这是PowerBuilder的库文件,其中包含了程序的源代码和对象。开发者...

    java获取汉字首字母+jar

    这个"java获取汉字首字母+jar"的资源提供了一个解决方案,它能够处理汉字到拼音的转换,并且考虑到了多音字的识别问题。 首先,汉字转换为拼音首字母的主要目的是简化汉字的处理,使其更便于计算机操作。例如,通过...

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

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

    获取汉字首字母

    3. **js获取首字母**:JavaScript是Web开发的主要脚本语言,实现汉字首字母获取通常是在浏览器环境中进行。可以创建一个函数,接受汉字字符串作为参数,返回对应的首字母数组或连接后的字符串。 下面是一个简单的...

    MySQL函数实现获取汉字拼音首字母

    使用MySQL函数,实现获取汉字拼音首字母。在SQL语句中传入汉字返回对应的首字母

Global site tag (gtag.js) - Google Analytics