中英文混合排序

转载 2015年11月17日 18:02:16


    博客分类:

好久没有写博客了,期间在做桌面云,被要求保密哈。不过最近在写一个android程序,需要实现一个中英文混合排序。不说了,直接代码; 
HanYuUtil.java 

伦理片 http://www.dotdy.com/

Java代码  收藏代码
  1. import net.sourceforge.pinyin4j.PinyinHelper;  
  2. import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;  
  3. import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;  
  4. import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;  
  5. import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;  
  6. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;  
  7.   
  8. public class HanYuUtil {  
  9.     /** 
  10.      * 将单个字符(包括单个汉字或者单个英文字母)转换为小写字母 
  11.      * @param c 
  12.      * @return 
  13.      */  
  14.     public String getCharacterPinYin(char c)  
  15.     {  
  16.         String[] pinyin=null;  
  17.         HanyuPinyinOutputFormat format =new HanyuPinyinOutputFormat();  
  18.         format.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
  19.         format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);//汉字没有声调  
  20.         format.setVCharType(HanyuPinyinVCharType.WITH_V);  
  21.         try{  
  22.             pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format);  
  23.         }catch(BadHanyuPinyinOutputFormatCombination e){  
  24.             e.printStackTrace();  
  25.         }  
  26.         // 如果c不是汉字,toHanyuPinyinStringArray会返回null  
  27.         if (pinyin == null)  
  28.             return ((Character)c).toString().toLowerCase();  
  29.         // 只取一个发音,如果是多音字,仅取第一个发音  
  30.         return pinyin[0];  
  31.     }  
  32.     /** 
  33.      * 将包含中英文的字符串以小写英文字母的形式返回 
  34.      * @param str 
  35.      * @return 
  36.      */  
  37.     public String getStringPinYin(String str)  
  38.     {  
  39.         StringBuilder sb = new StringBuilder();  
  40.         String tempPinyin = null;  
  41.         for (int i = 0; i < str.length(); ++i)  
  42.         {  
  43.             tempPinyin = getCharacterPinYin(str.charAt(i));  
  44.             sb.append(tempPinyin);  
  45.         }  
  46.         return sb.toString();  
  47.     }  
  48. }  


CustomerComparator.java 
Java代码  收藏代码
  1. import java.util.Comparator;  
  2. import com.xyz.kjy.db.Customer;  
  3.   
  4. public class CustomerComparator implements Comparator<Customer> {  
  5.   
  6.     @Override  
  7.     public int compare(Customer customer0, Customer customer1) {  
  8.         // 按照商家名称排序  
  9.         String catalog0 = "";  
  10.         String catalog1 = "";  
  11.           
  12.         if(customer0!=null&&customer0.getStoreName()!=null)  
  13.             catalog0=HanYuUtil.getStringPinYin(customer0.getStoreName());  
  14.         if(customer1!=null&&customer1.getStoreName()!=null)  
  15.             catalog1=HanYuUtil.getStringPinYin(customer1.getStoreName());  
  16.         return catalog0.compareTo(catalog1);  
  17.     }  
  18.   
  19. }  

影音先锋电影 http://www.iskdy.com/
Customer.java 
Java代码  收藏代码
  1. public class Customer  {  
  2.     private String storeName;//店名,唯一  
  3.       
  4.     public String getStoreName() {  
  5.         return storeName;  
  6.     }  
  7.     public void setStoreName(String storeName) {  
  8.         this.storeName = storeName;  
  9.     }  
  10.   
  11. }  


这里面用到了一个第三方的包,在附件

相关文章推荐

js实现中英文混合排序

  • 2012-05-31 15:11
  • 25KB
  • 下载

中英文混合排序

这里要用到一个拼音的支持包pinyin4j-2.5.0.jar,大家可以去百度上下载一下 在应用类的app开发过程中,经常会用到联系人排序的功能,这里总结了一个例子 接下来是代码部分 Mai...
  • taven
  • taven
  • 2014-12-24 15:45
  • 349

[简易]中英文混合排序

【简易】中英文混合排序

中英文及数字混合排序

当我们显示一个列表时往往因为中文英

使用 sql、 javascript 按字节截取、计算中英文混合字符串字节数

简介:使用sql和javascript两种方式统计中英文混合字符串中字节长度的办法。 历史: 以前做前台验证的时候,使用过用javascript计算中英文混合字符串的小算法,比较简单,如下: ...

关于中英文混合字符串截取功能

有时候,我们经常会遇到这样的需求,提示层文字超出,需要JS做字符串截取,但是呢,我们常常会烦恼文字中英文混合如何判断,因为我们知道在JS中 string.length这个值是不考虑中英文的,但是计算机...

UITextView & UITextField 实现中英文混合输入的限制

最近项目中有了一个新的需求, 用户输入昵称时可以同时输入中英文, 且有字数限制(一个中文汉字 == 两个字母), 一开始感觉不太难啊, 但实现的过程中却发现不如想象中容易, 这里写一篇博客记录一下:我...

strlen和mb_strlen区别(php获得中英文混合字符长度)

转自: http://apps.hi.baidu.com/share/detail/14644689  strlen和mb_strlen区别(php获得中英文混合字符长度) <?php//测试时文件的...

1.SetWindowText绘制中英文混合时卡死

结合实例借助资源监视器,process explorer定位死锁问题。

(JAVA)截取中英文混合字符串

题目: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)