仿联系人中英文、中文排序效果--(1) 排序的实现

为什么80%的码农都做不了架构师?>>>   hot3.png

     对于英文和中文混搭的排序(注:手机中联系人表每个姓名字段后面还有一个拼音字段的,此功能shiih,不需要再对它去转换,直接取两个字段即可),用java自带的排序算法是不行的,这里有个开源库pinyin4j.jar可以实现此要求,下面来看例子:
public class PinYinUtil
{
	private HanyuPinyinOutputFormat format = null;
	private String[] pinyin;

	public PinYinUtil()
	{
		format = new HanyuPinyinOutputFormat();
		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
	}

	// 转换单个字符
	public String getCharacterPinYin(char c)
	{
		try
		{
			pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format);
		} catch (BadHanyuPinyinOutputFormatCombination e)
		{
			e.printStackTrace();
		}
		// 如果不是汉字,toHanyuPinyinStringArray会返回null
		if (pinyin == null)
			return null;
		// 只取一个发音,如果是多音字,仅取第一个发音
		return pinyin[0];
	}
}
测试代码:
System.out.prin(new PinYinUtil().getCharacterPinYin("乐"));
>:le

当然,如果你要输出多音字的所有拼音,在上面sb.append就是~~

写入数据库后,直接排序即可:


仿联系人中英文、中文排序效果--(1) 排序的实现_第1张图片

我的博客其他文章列表      
http://my.oschina.net/helu 

 
 



 

转载于:https://my.oschina.net/helu/blog/177499

你可能感兴趣的:(仿联系人中英文、中文排序效果--(1) 排序的实现)