`

Android汉字按拼音首字母查询

阅读更多
前面写过一篇《Android中文按拼音排序》:http://gqdy365.iteye.com/blog/2002488里面介绍了汉字提取拼音的方法,在此基础上我们实现按汉字首字母搜索的功能,即:输入“bj”得到“北京”;

注意:以下顺序是我的项目实现过程,各位不一定要按这个步骤,活学活用;

一、将汉字集合提取首字母:
1、新建两个集合,
	public static List<String> cityNameChar = new ArrayList<String>();//保存中文城市名;
	public static List<String> cityNameShort = new ArrayList<String>();//保存拼音首字母;


2、初始化

// 初始化城市字母简称集合
		for (int i = 0; i < CityUtil.allCity.length; i++) {
			cityNameShort.add(getPingYinShort(CityUtil.allCity[i]));
			cityNameChar.add(CityUtil.allCity[i]);
		}


用到的方法:


	/**
	 * 将字符串中的中文转化为拼音,并提取首字母
	 * 
	 * @param inputString
	 * @return
	 */
	public static String getPingYinShort(String inputString) {
		HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
		format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		format.setVCharType(HanyuPinyinVCharType.WITH_V);

		char[] input = inputString.trim().toCharArray();// 把字符串转化成字符数组
		String shortString = "";
		try {
			for (int i = 0; i < input.length; i++) {
				// \\u4E00是unicode编码,判断是不是中文
				if (java.lang.Character.toString(input[i]).matches(
						"[\\u4E00-\\u9FA5]+")) {
					// 将汉语拼音的全拼存到temp数组
					String[] temp = PinyinHelper.toHanyuPinyinStringArray(
							input[i], format);
					// 取拼音的第一个读音
					shortString += temp[0].substring(0, 1);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return shortString;
	}



以上三步就完成了首字母集合与中文集合的对应,下面就是查询了:

二、数据查询:
数据查询也很简单,如果用户输入的是中文,就在中文集合中查找,否则在首字母集合中查询并返回对应的中文:
name = name.toLowerCase();
		//字母搜索
		if (name.matches("[a-zA-Z]+")) {
			for (int i = 0; i < CommonUtil.cityNameShort.size(); i++) {
				if (CommonUtil.cityNameShort.get(i).indexOf(name) != -1) {
					cityData.add(CommonUtil.cityNameChar.get(i));
				}
			}
			return;
		}

		for (int i = 0; i < CityUtil.allCity.length; i++) {
//这里查询了包含name的字符串,按需要定制;
			if (CityUtil.allCity[i].indexOf(name) != -1) {
				cityData.add(CityUtil.allCity[i]);
			}
		}
1
3
分享到:
评论

相关推荐

    java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII

    以上就是关于“java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII”的技术要点。在实际应用中,根据需求选择合适的转换方式,并注意处理可能出现的异常情况,如多音字、非ASCII字符等。在处理大量...

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

    在Android开发中,为了实现类似通讯录的快速检索功能,我们常常需要将汉字转换为拼音,以便用户可以通过首字母进行筛选。...同时,由于工具类的复用性,它也可以被应用到其他需要按拼音首字母排序或检索的场景中。

    Android中文按拼音排序

    在Android开发中,有时我们需要对中文字符串进行按照拼音首字母的顺序进行排序,例如在创建一个联系人列表或者中文菜单时。"Android中文按拼音排序"这个话题就是关于如何实现这样的功能。这篇博客(博文链接:...

    Android选择城市Demo,可根据拼音、首字母搜索

    这涉及到对汉字拼音首字母的处理,比如Jian4(简)的首字母是"J"。这个过程可能包括对全拼进行处理,得到每个汉字的首字母,然后进行排序和搜索。 7. **UI设计**: 选择城市界面需要有清晰的搜索框和ListView。搜索...

    取汉字拼音首字母的Demo

    在Android和Java开发中,有时候我们需要处理汉字与拼音之间的转换,比如实现按汉字拼音首字母排序的功能。在给定的"取汉字拼音首字母的Demo"中,开发者可能遇到了这样的需求:用户界面显示一个ListView,其中的数据...

    将汉字转为拼音首字母,获取取汉字拼音首字母

    本项目聚焦于实现一个功能,即将汉字转换为它们的拼音首字母,这对于信息检索、文本处理或创建搜索引擎等应用非常有用。下面将详细介绍这个功能的实现原理以及涉及到的相关知识点。 1. **汉字转拼音**: 在Delphi...

    Android应用源码之带有拼音首字母排序的listview.zip

    本示例源码“Android应用源码之带有拼音首字母排序的listview”着重于如何在ListView中实现基于拼音首字母的排序功能,这在中文应用中非常常见,如联系人应用或各类列表检索。下面将详细介绍这一功能的实现原理和...

    带有拼音首字母排序的listview

    在Java或Kotlin中,可以使用开源库如`Pinyin4j`或者`androidx.core.text`中的`TextUtils`方法`getChars()`配合`Character`类的`getUnicodeCluster()`来获取汉字的拼音首字母。确保处理好多音字、生僻字以及非汉字...

    Android实现通讯录(带有拼音首字母排序的和过滤搜索

    总的来说,实现一个带有拼音首字母排序和过滤搜索功能的Android通讯录应用,涉及到Android系统的ContentResolver、ContactsContract、自定义Adapter、汉字转拼音、数据排序和过滤等多个知识点。这个过程既锻炼了...

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

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

    Android 带有拼音首字母排序的listview-IT计算机-毕业设计.zip

    这个“Android带有拼音首字母排序的listview”项目是一个毕业设计示例,它深入探讨了如何在Android应用中实现拼音首字母排序功能,这在中文数据的分类与检索中非常实用。下面将详细解释这一技术的实现原理和步骤。 ...

    Android程序开发之获取汉字的首字母

    我们可以根据这两个字节来推算出汉字的拼音首字母。 在提供的代码中,可以看到一些关键的常量和数组: 1. `GB_SP_DIFF`:这是GB2312编码中每个字节与160的差值,用于计算区位码。 2. `secPosValueList`:这是一个...

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

    本篇文章将深入探讨如何实现一个能够处理汉字拼音首字母,并且支持多音字的AutoCompleteTextView过滤提示功能。 首先,我们要了解多音字的概念。在中文里,有些字有多个读音,例如“还”可以读作“hái”或“huán...

    Android汉字转拼音

    这里我们关注的焦点是“Android汉字转拼音”技术,这主要依赖于两个关键元素:`HanziToPinyin` 类和 `Pinyin4J.jar` 库。 `HanziToPinyin` 类通常是一个自定义实现,用于处理汉字到拼音的转换。这个类可能会包含一...

    android 首字母搜索

    1. 数据结构设计:为了高效地进行首字母检索,可以创建一个HashMap或TreeMap,键为每个首字母(或拼音首字母),值为包含该首字母的项的集合。这样,我们可以在常数时间内完成查找。 2. 输入监听:在EditText中添加...

    Android汉字转拼音Demo

    这个"Android汉字转拼音Demo"就是这样一个示例项目,它演示了如何在Android应用中实现汉字到拼音的转换。这个过程通常涉及到第三方库的使用,本例中采用的是`pinyin4j.jar`。 `pinyin4j.jar`是一个Java库,专门用于...

    带有拼音首字母排序的listview.zip

    在Java或Android中,可以使用第三方库,如Pinyin4j,来获取汉字的拼音首字母。在数据加载到Adapter之前,我们需要遍历整个数据集,计算每个条目的首字母,并根据这些首字母进行排序。这样,当ListView加载时,数据将...

    拼音首字母检索

    在IT行业中,拼音首字母检索是一种常见的数据查找和过滤技术,尤其在中文用户界面中非常常见,例如在手机联系人应用、地址簿等场景。这种技术的目的是为了提高用户在大量中文信息中寻找特定条目的效率,因为它允许...

    Android-通过用户名首字母生成头像ImageView控件

    标题所提及的“Android-通过用户名首字母生成头像ImageView控件”就是这样一个功能,它根据用户的姓名首字母创建一个代表性的头像。下面我们将详细讨论如何实现这个功能,并涉及与图片加载展示相关的技术。 首先,...

Global site tag (gtag.js) - Google Analytics