`

输入中文显示中文首字母

 
阅读更多
import java.io.UnsupportedEncodingException;
public class Chinesetoen {
	private final int[] li_SecPosValue = { 1601, 1637, 1833, 2078, 2274, 2302,
			2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027,
			4086, 4390, 4558, 4684, 4925, 5249, 5590 };

	private final String[] lc_FirstLetter = { "a", "b", "c", "d", "e", "f",
			"g", "h", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
			"w", "x", "y", "z" };

	private final String ls_SecondSecTable = "CJWGNSPGCGNE[Y[BTYYZDXYKYGT[JNNJQMBSGZSCYJSYY[PGKBZGY[YWJKGKLJYWKPJQHY[W[DZLSGMRYPYWWCCKZNKYYGTTNJJNYKKZYTCJNMCYLQLYPYQFQRPZSLWBTGKJFYXJWZLTBNCXJJJJTXDTTSQZYCDXXHGCK[PHFFSS[YBGXLPPBYLL[HLXS[ZM[JHSOJNGHDZQYKLGJHSGQZHXQGKEZZWYSCSCJXYEYXADZPMDSSMZJZQJYZC[J[WQJBYZPXGZNZCPWHKXHQKMWFBPBYDTJZZKQHYLYGXFPTYJYYZPSZLFCHMQSHGMXXSXJ[[DCSBBQBEFSJYHXWGZKPYLQBGLDLCCTNMAYDDKSSNGYCSGXLYZAYBNPTSDKDYLHGYMYLCXPY[JNDQJWXQXFYYFJLEJPZRXCCQWQQSBNKYMGPLBMJRQCFLNYMYQMSQYRBCJTHZTQFRXQHXMJJCJLXQGJMSHZKBSWYEMYLTXFSYDSWLYCJQXSJNQBSCTYHBFTDCYZDJWYGHQFRXWCKQKXEBPTLPXJZSRMEBWHJLBJSLYYSMDXLCLQKXLHXJRZJMFQHXHWYWSBHTRXXGLHQHFNM[YKLDYXZPYLGG[MTCFPAJJZYLJTYANJGBJPLQGDZYQYAXBKYSECJSZNSLYZHSXLZCGHPXZHZNYTDSBCJKDLZAYFMYDLEBBGQYZKXGLDNDNYSKJSHDLYXBCGHXYPKDJMMZNGMMCLGWZSZXZJFZNMLZZTHCSYDBDLLSCDDNLKJYKJSYCJLKWHQASDKNHCSGANHDAASHTCPLCPQYBSDMPJLPZJOQLCDHJJYSPRCHN[NNLHLYYQYHWZPTCZGWWMZFFJQQQQYXACLBHKDJXDGMMYDJXZLLSYGXGKJRYWZWYCLZMSSJZLDBYD[FCXYHLXCHYZJQ[[QAGMNYXPFRKSSBJLYXYSYGLNSCMHZWWMNZJJLXXHCHSY[[TTXRYCYXBYHCSMXJSZNPWGPXXTAYBGAJCXLY[DCCWZOCWKCCSBNHCPDYZNFCYYTYCKXKYBSQKKYTQQXFCWCHCYKELZQBSQYJQCCLMTHSYWHMKTLKJLYCXWHEQQHTQH[PQ[QSCFYMNDMGBWHWLGSLLYSDLMLXPTHMJHWLJZYHZJXHTXJLHXRSWLWZJCBXMHZQXSDZPMGFCSGLSXYMJSHXPJXWMYQKSMYPLRTHBXFTPMHYXLCHLHLZYLXGSSSSTCLSLDCLRPBHZHXYYFHB[GDMYCNQQWLQHJJ[YWJZYEJJDHPBLQXTQKWHLCHQXAGTLXLJXMSL[HTZKZJECXJCJNMFBY[SFYWYBJZGNYSDZSQYRSLJPCLPWXSDWEJBJCBCNAYTWGMPAPCLYQPCLZXSBNMSGGFNZJJBZSFZYNDXHPLQKZCZWALSBCCJX[YZGWKYPSGXFZFCDKHJGXDLQFSGDSLQWZKXTMHSBGZMJZRGLYJBPMLMSXLZJQQHZYJCZYDJWBMYKLDDPMJEGXYHYLXHLQYQHKYCWCJMYYXNATJHYCCXZPCQLBZWWYTWBQCMLPMYRJCCCXFPZNZZLJPLXXYZTZLGDLDCKLYRZZGQTGJHHGJLJAXFGFJZSLCFDQZLCLGJDJCSNZLLJPJQDCCLCJXMYZFTSXGCGSBRZXJQQCTZHGYQTJQQLZXJYLYLBCYAMCSTYLPDJBYREGKLZYZHLYSZQLZNWCZCLLWJQJJJKDGJZOLBBZPPGLGHTGZXYGHZMYCNQSYCYHBHGXKAMTXYXNBSKYZZGJZLQJDFCJXDYGJQJJPMGWGJJJPKQSBGBMMCJSSCLPQPDXCDYYKY[CJDDYYGYWRHJRTGZNYQLDKLJSZZGZQZJGDYKSHPZMTLCPWNJAFYZDJCNMWESCYGLBTZCGMSSLLYXQSXSBSJSBBSGGHFJLYPMZJNLYYWDQSHZXTYYWHMZYHYWDBXBTLMSYYYFSXJC[DXXLHJHF[SXZQHFZMZCZTQCXZXRTTDJHNNYZQQMNQDMMG[YDXMJGDHCDYZBFFALLZTDLTFXMXQZDNGWQDBDCZJDXBZGSQQDDJCMBKZFFXMKDMDSYYSZCMLJDSYNSBRSKMKMPCKLGDBQTFZSWTFGGLYPLLJZHGJ[GYPZLTCSMCNBTJBQFKTHBYZGKPBBYMTDSSXTBNPDKLEYCJNYDDYKZDDHQHSDZSCTARLLTKZLGECLLKJLQJAQNBDKKGHPJTZQKSECSHALQFMMGJNLYJBBTMLYZXDCJPLDLPCQDHZYCBZSCZBZMSLJFLKRZJSNFRGJHXPDHYJYBZGDLQCSEZGXLBLGYXTWMABCHECMWYJYZLLJJYHLG[DJLSLYGKDZPZXJYYZLWCXSZFGWYYDLYHCLJSCMBJHBLYZLYCBLYDPDQYSXQZBYTDKYXJY[CNRJMPDJGKLCLJBCTBJDDBBLBLCZQRPPXJCJLZCSHLTOLJNMDDDLNGKAQHQHJGYKHEZNMSHRP[QQJCHGMFPRXHJGDYCHGHLYRZQLCYQJNZSQTKQJYMSZSWLCFQQQXYFGGYPTQWLMCRNFKKFSYYLQBMQAMMMYXCTPSHCPTXXZZSMPHPSHMCLMLDQFYQXSZYYDYJZZHQPDSZGLSTJBCKBXYQZJSGPSXQZQZRQTBDKYXZKHHGFLBCSMDLDGDZDBLZYYCXNNCSYBZBFGLZZXSWMSCCMQNJQSBDQSJTXXMBLTXZCLZSHZCXRQJGJYLXZFJPHYMZQQYDFQJJLZZNZJCDGZYGCTXMZYSCTLKPHTXHTLBJXJLXSCDQXCBBTJFQZFSLTJBTKQBXXJJLJCHCZDBZJDCZJDCPRNPQCJPFCZLCLZXZDMXMPHJSGZGSZZQLYLWTJPFSYASMCJBTZKYCWMYTCSJJLJCQLWZMALBXYFBPNLSFHTGJWEJJXXGLLJSTGSHJQLZFKCGNNNSZFDEQFHBSAQTGYLBXMMYGSZLDYDQMJJRGBJTKGDHGKBLQKBDMBYLXWCXYTTYBKMRTJZXQJBHLMHMJJZMQASLDCYXYQDLQCAFYWYXQHZ ";

	int li_offset;
	
	/**
	 * 取得给定汉字串的首字母串,即声母串
	 * 
	 * @param str
	 *            给定汉字串
	 * @return 声母串
	 */
	public String getAllFirstLetter(String str) {
		if (str == null || str.trim().length() == 0) {
			return "";
		}

		String _str = "";
		for (int i = 0; i < str.length(); i++) {
			_str = _str + this.getFirstLetter(str.substring(i, i + 1));
		}

		return _str;
	}

	/**
	 * 取得给定汉字的首字母,即声母
	 * 
	 * @param chinese
	 *            给定的汉字
	 * @return 给定汉字的声母
	 */
	//输入字符串汉字,返回字符串,如果有汉字,将汉字的首字母的返回
	private String getFirstLetter(String chinese) {
		if (chinese == null || chinese.trim().length() == 0) {
			return "";
		}
		
		chinese = this.conversionStr(chinese, "GB2312", "ISO8859-1");
		if (chinese.length() > 1) // 判断是不是汉字
		{
			int li_SectorCode = (int) chinese.charAt(0); // 汉字区码
			int li_PositionCode = (int) chinese.charAt(1); // 汉字位码
			li_SectorCode = li_SectorCode - 160;
			li_PositionCode = li_PositionCode - 160;
			int li_SecPosCode = li_SectorCode * 100 + li_PositionCode; // 汉字区位码
			if (li_SecPosCode > 1600 && li_SecPosCode < 5590) {
				for (int i = 0; i < 23; i++) {
					if (li_SecPosCode >= li_SecPosValue[i]
							&& li_SecPosCode < li_SecPosValue[i + 1]) {
						chinese = lc_FirstLetter[i].toUpperCase();
						break;
					}
				}
			} else { // 第一个字符
				li_offset = (li_SectorCode - 56) * 94 + li_PositionCode - 1; // 计算偏移量
				if (li_offset >= 0 && li_offset <= 3007) { // 二区汉字
					chinese = ls_SecondSecTable.substring(li_offset,
							li_offset + 1); // 取出此字声母
				} else // 非汉字字符,如图形符号或ASCII码
				{
					chinese = this
							.conversionStr(chinese, "ISO8859-1", "GB2312");
					chinese = chinese.substring(0, 1);
				}
			}
		}

		return chinese;
	}

	/**
	 * 字符串编码转换
	 * 
	 * @param str
	 *            要转换编码的字符串
	 * @param charsetName
	 *            原来的编码
	 * @param toCharsetName
	 *            转换后的编码
	 * @return 经过编码转换后的字符串
	 */
	private static String conversionStr(String str, String charsetName,
			String toCharsetName) {

		try {
			str = new String(str.getBytes(charsetName), toCharsetName);
		} catch (UnsupportedEncodingException ex) {
			System.out.println("字符串编码转换异常:" + ex.getMessage());
		}

		return str;
	}
}

 调用:new Chinesetoen().getAllFirstLetter(chinese).toUpperCase();

分享到:
评论

相关推荐

    汉字转拼音及获取首字母

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

    Java中的输入汉字拼音首字母即自动显示数据库中相应内容

    在Java编程中,实现输入汉字拼音首字母自动显示出数据库中相应内容的功能,是常见的文本框自动补全(AutoComplete)技术的一种应用场景。这种技术通常用于提高用户输入的效率和准确性,常见于搜索引擎、输入法软件...

    c#输入后自动获取汉字的首字母.txt

    根据提供的文件信息,本文将详细解释如何在C#中实现获取汉字首字母的功能,并解析代码逻辑及其实现原理。 ### 核心知识点 #### 1. 获取汉字首字母的背景与应用场景 在很多中文处理的应用场景中,我们需要将汉字...

    输入汉字转换成拼音首字母js代码.zip

    它可能包含一个输入框让用户输入汉字,一个按钮触发转换操作,以及一个段落或列表显示转换后的拼音首字母结果。JavaScript代码通常会通过`addEventListener`监听按钮点击事件,调用`pinying.js`中的转换函数,并将...

    js输入汉字转拼音首字母插件

    例如,它可能会包含一段HTML代码,用于输入汉字,并实时显示对应的拼音或首字母。此外,示例还可能包括错误处理和性能优化的策略,帮助开发者更好地适应各种场景。 在实际开发中,这样的插件可以广泛应用于搜索框的...

    在下拉列表中输入汉字首字母,搜索对应汉字

    标题中的“在下拉列表中输入汉字首字母,搜索对应汉字”是指一种常见的中文输入法优化功能,通常在用户界面中实现,以便用户快速找到所需的信息。这种功能常见于各种应用,如搜索引擎、数据库查询系统或者任何需要...

    VB编程实现返回汉字拼音首字母.7z

    本项目"VB编程实现返回汉字拼音首字母"是一个实用的小程序,其主要功能是将汉字转化为对应的拼音首字母,这对于处理中文数据、搜索优化、或者在不支持汉字输入的环境下具有很高的实用性。 首先,我们要理解这个程序...

    按中文首字母搜索

    标题“按中文首字母搜索”涉及的是一个在中文数据检索中常见的功能,即通过输入汉字拼音的首字母来查找相关信息。这种技术对于处理大量中文数据,尤其是在没有输入完整拼音的情况下,能够极大地提高搜索效率和用户...

    取字 每个汉字的拼音首字母

    3. **输入法优化**:现代中文输入法往往支持全拼和简拼输入,其中简拼就是只输入汉字拼音的首字母,这依赖于能够准确识别每个汉字的拼音首字母。 4. **中文信息检索**:在搜索引擎或数据库中,将汉字转换为拼音首...

    下拉列表中文首字母选择

    在处理中文数据时,为了提高用户体验,常常会采用中文首字母选择的功能。这个功能主要是针对中文字符众多,用户难以通过全拼来查找目标选项的问题而设计的。用户只需输入目标选项的拼音或拼音首字母,系统就能自动...

    JS实现获取汉字首字母拼音、全拼音及混拼音的方法

    本文将介绍如何使用JavaScript实现获取汉字首字母拼音、全拼音以及混拼音的方法。 首先,要实现这些功能,我们需要一个能将汉字转换为拼音的JavaScript插件。在提供的示例中,使用了一个名为`ChinesePY.js`的插件,...

    js汉字转拼音及汉字转拼音首字母

    在JavaScript编程语言中,汉字转拼音以及汉字转拼音首字母是一项常见的需求,特别是在处理中文数据、搜索优化或者用户输入辅助等方面。这篇文档将详细介绍如何利用JavaScript实现这些功能,并结合提供的压缩包文件...

    AutoCompleteTextView输入汉字拼音首字母实现过滤提示(支持多音字)2

    在这个测试项目中,你可以创建一些包含多音字的数据,然后通过AutoCompleteTextView输入不同拼音首字母,检查是否能正确显示匹配的建议。 总的来说,实现AutoCompleteTextView的汉字拼音首字母过滤提示功能,需要对...

    汉字GBK首字母(含生僻字)C++实现代码文件

    在IT领域,尤其是在编程实践中,有时我们...总的来说,这个代码实现解决了C++环境中处理汉字GBK编码并获取首字母的难题,特别考虑了生僻字、多音字和全角字符的情况,对于处理中文信息的程序设计具有很高的参考价值。

    将汉字转化成拼音首字母的程序

    在这些源代码中,`ChangeDlg`可能代表对话框类,负责用户交互,比如输入汉字并显示拼音首字母结果。`Change`类可能包含实际的转换逻辑,可能使用了Windows API中的`GetText`、`GetWindowText`等函数获取用户输入的...

    pb汉字提取首字母源码

    在中文信息化处理领域,一个常见的需求是从汉字中提取其拼音的首字母。这种功能广泛应用于姓名索引、中文检索系统等领域。PowerBuilder(简称PB)作为一种老牌的快速应用开发工具,在企业级应用开发中仍有一席之地。...

    VB6.0 获取汉字拼音简码(首字母).rar

    在VB6.0编程环境中,有时我们需要处理汉字并获取其拼音首字母,这在创建基于拼音的唯一标识、搜索优化或排序等方面非常有用。标题提到的"VB6.0 获取汉字拼音简码(首字母).rar"是一个压缩包,其中包含VB6源码,用于...

    javascript实现获取中文汉字拼音首字母

    在JavaScript中实现获取中文汉字拼音首字母的功能,通常需要借助第三方库或算法来完成。本文将详细介绍如何通过JavaScript实现这一功能,并提供示例代码供读者参考。 首先,需要明确的是,将中文汉字转换为其拼音首...

    Qt拼音首字母过滤搜索

    这个功能允许用户通过输入中文词语的首字母来快速定位和选择目标内容,常见于列表(list)或树(tree)型的控件中。 Qt是一个跨平台的应用程序开发框架,由Digia公司维护,广泛应用于桌面、移动设备以及嵌入式系统中。...

Global site tag (gtag.js) - Google Analytics