按汉字首字母搜索的功能,即:输入“bj”得到“北京”;
注意:以下顺序是我的项目实现过程,各位不一定要按这个步骤,活学活用;
一、将汉字集合提取首字母:
1、新建两个集合,
Java代码 收藏代码
public static List<String> cityNameChar = new ArrayList<String>();//保存中文城市名;
public static List<String> cityNameShort = new ArrayList<String>();//保存拼音首字母;
2、初始化
Java代码 收藏代码
// 初始化城市字母简称集合
for (int i = 0; i < CityUtil.allCity.length; i++) {
cityNameShort.add(getPingYinShort(CityUtil.allCity[i]));
cityNameChar.add(CityUtil.allCity[i]);
}
用到的方法:
Java代码 收藏代码
/**
* 将字符串中的中文转化为拼音,并提取首字母
*
* @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;
}
以上三步就完成了首字母集合与中文集合的对应,下面就是查询了:
二、数据查询:
数据查询也很简单,如果用户输入的是中文,就在中文集合中查找,否则在首字母集合中查询并返回对应的中文:
Java代码 收藏代码
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]);
}
}
分享到:
相关推荐
sql 汉字转拼音首字母 代码 function --汉字转拼音首字母sql Create FUNCTION dbo.fnpbGetPYFirstLetter ( @str NVARCHAR(4000) )
VB汉字提取拼音首字母实例函数,测试直接可以使用,包括了大部分汉字
oracle拼音首字母查询
支持2万+汉字转拼音首字母
sql按拼音首字母排序,sql按拼音排序
VB获取汉字的拼音首字母 支持26000多汉字 可以自己添加汉字库 自动保存没能获取的汉字
java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII
java提取汉字拼音首字母的代码,简体中文的编码范围从B0A1(45217)一直到F7FE(63486),不支持多音字处理
汉字转全拼音或拼音首字母,支持gb2312和utf8编码 ,附带函数说明, 汉字转换为全拼音或拼音首字母 使用方法: include(ROOT_PATH.'includes/cls_chart_pinyin.php'); echo Pinyin('中国人','utf-8',false); 函数...
Mysql 汉字转拼音首字母,使用方式: 运行后生成一个表 一个函数 ,SELECT getPY("龍的传人");查询结果为LDCR。 不支持多音字。
【Access源码示例】--汉字转拼音首字母大写、转完整拼音
使用MySQL函数,实现获取汉字拼音首字母。在SQL语句中传入汉字返回对应的首字母
oracle获取汉字拼音拼音首字母的功能函数 oracle 获取汉字拼音
delphi 源代码 软件 汉字拼音首字母 将汉字转为拼音首字母,获取取汉字拼音首字母,delphi 源代码 软件 汉字拼音首字母
Unicode汉字拼音首字母查询,可在程序中生成汉字的拼音首字母,数字各字母等将直接显示
微信小程序-汉字拼音首字母排序选择,包括了一个微信小程序富文本解析函数库,收录字符的Unicode编码范围为19968至40869,汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell,改动为判定输入数组...
输入汉字字符参数,返回汉字拼音的首字母!
SQL中将汉字转换成拼音,这里是转换汉字首拼音,如果需要全部转换,在以下程序中稍微改几个数字就可以了
java 取出汉语字符串各汉字拼音首字母并大写
Qt C++ 汉字转拼音与首字母,用Qt 5.5亲测可用