`

输入中文显示中文首字母

阅读更多
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();

分享到:
评论

相关推荐

    汉字转拼音及获取首字母

    这是我搜索网络资源,然后自己整理的一个输入汉字转拼音及获取首字母的一个示例程序,希望能帮助到兄弟姐妹们。

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

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

    支持输入筛选的类spinner实现(AndroidStudio源码)支持拼音(首字母)搜索

    使用EditText和ListView实现的可输入筛选的Spinner,输入后触发自动搜索,搜索支持原字符,汉字支持拼音全拼和首字母。代码为demo使用示例,可直接在AndroidStudio中打开使用。

    JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】

    本文实例讲述了JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法。分享给大家供大家参考,具体如下: 实现效果: 图一: 图二: 此例中输入的中文字符串“万万保重”,有三个字是多音字,...

    微信根据汉字查拼音小程序{源代码}.rar

    微信根据汉字查拼音小程序{源代码},这是一个运行在微信小程序中的一个小功能,根据用户输入的汉字,智能快速的显示出该汉字的拼音,是全拼,非首字母。也就是汉字转拼音的功能,在微信开发工具调试中,你可以试着...

    获得汉字的拼音简码程序

    获得汉字的拼音简码程序(VB6.0源代码编写)获得汉字的拼音简码,在你输入汉字的同时,汉字的首字母就会显示出来。Public Function py(mystr As String) As String

    VBA代码助手专业版4.4.6 AI生成VBA代码 VBA代码解释器

    VBA代码库收藏管理, VBA中文代码库输入提示, VBA变量名首字母输入提示 VBA函数过程输入提示, VBA代码自动对齐排版, VBA代码混淆, VBA工程密码破解, Excel VBA模块隐藏保护, VBA颜色修改器, VBA代码行号显示 ...

    VBA代码助手专业版3.7.8.0

    VBA代码库收藏管理, VBA中文代码库输入提示, VBA变量名首字母输入提示 VBA函数过程输入提示, VBA代码自动对齐排版, VBA代码混淆, VBA工程密码破解, Excel VBA模块隐藏保护, VBA颜色修改器, VBA代码行号显示 ...

    获得汉字的拼音简码程序(VB6.0代码编写)

    获得汉字的拼音简码程序(VB6.0代码编写) 获得汉字的拼音简码,在你输入汉字的同时,汉字的首字母就会显示出来。 QQ223857666勾月

    和码汉字输入法 v3.3.4

    2、在手机与小数字键盘上,25个数字码通过12345五个数字键盘输入,在电脑大键盘上通过25个字母键输入25个数字输入码,因而第一次实现了同一汉字输入码方案在不同设备上的统一通用;3、和码的25个码所含笔画与部件...

    C#获取五笔码和拼音码

    C#取五笔码和拼音码 C#取五笔码和拼音码

    英语输入辅助工具

    具有自动识别功能,将句子的首字母改成大写,或按书写样式自动判断将整个词改为大写。用户可以自行编辑词典、自行添加词汇,如生僻的人名、地名等都可以先存入字典,然后在录入时自动匹配。集牛津、朗文、格林斯等多...

    java设计电话通讯录功能

    1:输入的大写首字母可能不是大写首字母 是数字 是其他的汉字 2:性别选择的不是A/B 3:注册用户名字的时候 应国家要求 关键字需要屏蔽(...) 4: 输入电话号码的时候 非11为数字 不是数字 不是以138 130 137 ...

    汉字转拼音(全拼)Oracle函数

    参考了网上的SPELLCODE获得汉字首字母函数和f_getSpellcode函数,主要是把PIPE Row(spell_code('a', -20319))等内容改成了字符串再进行比较,效率提高了很多倍,基本响应速度在毫秒级。 在项目中得到了应用,像百度...

    响应软键盘事件获取城市列表

    在文本框输入城市中文名或城市首字母。 响应软键盘事件,查找出城市。城市按照 拉丁字母排序

    拼音搜索中文Demo

    通过在文本框中输入拼音首字母可以进行相关中文的搜索,并加载到ListView当中,进行显示

    Google谷歌拼音输入法

    支持拼音首字母缩写输入.用户可以将谷歌拼音设置为在输入简写时以 z,c,s 代替 zh,ch,sh.在输入全拼时则不受模糊拼音影响. 6.支持繁体输入和 GBK 大字库,各种生僻字均能流畅输入. 7.简洁的属性设置,无需繁琐的操作即...

    微信小程序-微信小程序 城市区县定位选择器 带拼音搜索 可直接使用

    亦可通过 侧边栏 选择,城市按拼音首字母排列 选择好城市后,自动显示辖下 区县 说明 使用(且小程序只能使用)腾讯地图的API 将utils目录中,config.default.js文件改名为config.js 并将其中的key改为自己的腾讯...

    王码五笔86 for Android

    王码五笔字型86版 for Android 软件大小:604612字节 最新更新:2012-1-16 9:51:16 ...6 首字母大写 选中此项,输入英文时文章时,可将最前面的字母自动转变为大写字母。 7 用户词典 用户可以添加自己的常用词语。

    Comfort Typing Pro v7.0中文版(附注册码).rar

    如众模板粘贴文本,从剪切板添加模板,把高亮显示的字母转换为大写民或小写,把所有选定的文件改变成句首字母大写,切换语言输入法,改变最后键入的字的输入语言或布局等等。内置模板编辑功能,可以添加和删除除标准...

Global site tag (gtag.js) - Google Analytics