按字典顺序获取通讯录

1.数据一般在数据库中,将数据查询出来,按照名字字段排下序。
order by convert(trim(g.procedure_name) using gbk) asc
2.下载jar包(pinyin4j-2.5.0.jar),,放入webContent的web_inf—lib下,然后构建路径。就可以了
需要用到jar包里的:
获取中文第一个字的首字母:
String 首字母= PinyinHelper.toHanyuPinyinStringArray(String.charAt(0));

3.设置26个字母的数组;
String[] b ={“A”,“B”,“C”, “D”, “E”, “F”, “G”, “H”, “I”, “J”,“K”,“L”, “M”, “N”, “O”, “P”, “Q”, “R”, “S”, “T”, “U”, “V”,“W”, “X”, “Y”, “Z”, “#” };
4.For(b){
For(名字list){
//获取每一行的名字 首字母;
String 首字母= PinyinHelper.toHanyuPinyinStringArray(String.charAt(0));
If(首字母.equalsIgnoreCase(b[i].toString())){
存到map;放入list
}
}
if(!list.isEmpty()){
hashMap.put(b[i], list);
}
}

附:个人工作时写的:
List<Object[]> detailList = this.getDBParserAccess().selectList(dbSession,selSql+whereSql,p2vs);

	String[] b = { "A", "B", "C", "D", "E", "F", "G", "H", "I",
				"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
				"W", "X", "Y", "Z", "#" };
	for(int i = 0;i<b.length;i++){
		List<Map<String,Object>> list = new ArrayList<>();
		for(Object[] o :detailList){
		
			String pinYinHeadChar = ChineseToEnglish.getPinYinHeadChar(o[1].toString());//可以不用ChineseToEnglish类,直接用PinyinHelper,下一行代码

// String[] szm = PinyinHelper.toHanyuPinyinStringArray(o[1].toString().charAt(0));

// String pingYin = ChineseToEnglish.getPingYin(o[1].toString());
if(pinYinHeadChar.substring(0,1).equalsIgnoreCase(b[i].toString())){
HashMap<String,Object> map = new HashMap<>();
map.put(“id”,o[0]);
map.put(“person_name”,o[1]);
map.put(“phone_number”,o[2]);
list.add(map);
}
}
if(!list.isEmpty()){
hashMap.put(b[i], list);
}

	}

引入了一个java类:
ChineseToEnglish.java ,这个类中有许多可以借鉴的方法,所以引入进来了,其实我这个实例可以不用引这个类,只是为了以后扩展使用才引的。
ChineseToEnglish.java :https://pan.baidu.com/s/1SVSuikDP5-xE5J_oLkb5qg 提取码:ld62
pinyin4j-2.5.0.jar:https://pan.baidu.com/s/1PjSAjBUNpuEAmvOX5LvXgA 提取码:66g3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值