`
pluto418
  • 浏览: 166272 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

汉语拼音排序比较器

    博客分类:
  • J2SE
阅读更多
下载 pinyin4j-2.5.0.jar

/**
 *
 * @author lw
 */
import java.util.Arrays;
import java.util.Comparator;
import net.sourceforge.pinyin4j.PinyinHelper;
/**
 * 汉字按照拼音排序的比较器
 * @author administrator
 *
 */
public class PinyinComparator implements Comparator<String> {
    public int compare(String str1, String str2) {
        int strLength = str1.length()>str2.length() ? str2.length() : str1.length();
        for(int i = 0; i < strLength; i++) {
        	String s1 = concatPinyinArray(PinyinHelper.toHanyuPinyinStringArray(str1.charAt(i)));
        	String s2 = concatPinyinArray(PinyinHelper.toHanyuPinyinStringArray(str2.charAt(i)));
            int result = s1.compareTo(s2);
            if(result != 0) {
                return result;
            }
        }
        return str1.length()<str2.length() ? -1 : 1;
    }
    
    private String concatPinyinArray(String[] pinyinArray) {
        StringBuffer pinyinSbf = new StringBuffer();
        
        if ((pinyinArray != null) && (pinyinArray.length > 0)) {
            for (int i = 0; i < pinyinArray.length; i++) {
                pinyinSbf.append(pinyinArray[i]);
            }
        }
        return pinyinSbf.toString();
    }

    public static void main(String[] args) { 
        String[] arrs = { "张三", "张三si", "张高", "赵六", "JAVA", "123", "$%$#", "哈哈A", "怡情"};

        Arrays.sort(arrs, new PinyinComparator());
        for(String s : arrs) {
            System.out.println(s);
        }
    }
}
分享到:
评论

相关推荐

    易语言540个易模块

    A ACCSEE记录显示到超级列表框模块 ACSII加解密模块2.0 ADO方式填充树型框 安全关机 B ...转为汉语拼音模块 1.0 状态栏控件2.0 字段不重复 字节集 自定义鼠标 自动更新模块 1.3 自解压制作

    易语言模块914个

    代码编辑器部分模块.ec 仿vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿真shell库.ec 优化内存.ec 优化内存模块.ec 伟业超级列表框列宽尺寸自动调整.ec 伟业高级...

    网络操作系统实训实验报告

    2. 使用自己的账号登录UNIX 系统, 用户名为:学号和姓名汉语拼音全拼。在用户主目录下,新建子目录,子目录名为:专业和班级(可以是拼音)。 3. 在新建的子目录下完成全部练习,所有的操作练习均要截图显示。 4. ...

    1345个易语言模块

    代码编辑器部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真shell库.ec 优化内存.ec 优化内存模块.ec 伟业极速文件传输客户端.ec 伟业极速文件传输服务器.ec ...

    1350多个精品易语言模块

    代码编辑器部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真shell库.ec 优化内存.ec 优化内存模块.ec 伟业极速文件传输客户端.ec 伟业极速文件传输服务器.ec ...

    易语言模块大全(374个)

    转为汉语拼音模块 1.0.ec 转生模块.ec NT系统服务.ec 读删一段.ec 禁止重复运行.ec TWnet.CN.EC 超级列表框扩展模块.ec 读写Rockey加密锁.ec 自创加解密数据.ec 外挂作坊1.5版.ec 自定延时模块.ec 求真文件对话框...

    790个易模块打包下载-2

    转为汉语拼音模块 1.0.ec 状态栏控件2.0.ec 字段不重复.ec 字节集.ec 自定义鼠标.ec 自动更新模块 1.3.ec 自解压制作.ec √功能键状态√.ec √取功能键状态√.ec 1.0.ec 2.0.ec 24位转单色位图模块.ec ...

    790个易模块-3

    转为汉语拼音模块 1.0.ec 状态栏控件2.0.ec 字段不重复.ec 字节集.ec 自定义鼠标.ec 自动更新模块 1.3.ec 自解压制作.ec √功能键状态√.ec √取功能键状态√.ec 1.0.ec 2.0.ec 24位转单色位图模块.ec ...

    790个易模块打包

    转为汉语拼音模块 1.0.ec 状态栏控件2.0.ec 字段不重复.ec 字节集.ec 自定义鼠标.ec 自动更新模块 1.3.ec 自解压制作.ec √功能键状态√.ec √取功能键状态√.ec 1.0.ec 2.0.ec 24位转单色位图模块.ec ...

    易语言700模块打包

    比较大小(1.0).zip 百度回贴模块(1.0).zip 编码转换大全(2.1).zip 编辑框禁止字符1.0(1.0).zip 编辑框辅助功能(1.0).zip 表格公式模块(1.2).zip 编译程序(1.0).zip 部品管理模块(1.0).zip 编辑框高亮模块...

    易语言模块大全(共775个模块)

    比较大小(1.0).zip 百度回贴模块(1.0).zip 编码转换大全(2.1).zip 编辑框禁止字符1.0(1.0).zip 编辑框辅助功能(1.0).zip 表格公式模块(1.2).zip 编译程序(1.0).zip 部品管理模块(1.0).zip 编辑框高亮模块(1.0).zip ...

    易语言模块大全汇总批量下载

    2005-08-15 09:49 8584 2916 易语言模块大全\代码编辑器部分模块.ec 2002-11-07 18:42 100179 19092 易语言模块大全\仿WinXP窗口v3.1版.ec 2005-10-21 15:31 94979 18657 易语言模块大全\仿XP界面3.0特别版模块 3.0....

    1000个【易语言模块大全汇总批量下载】

    2005-08-15 09:49 8584 2916 易语言模块大全\代码编辑器部分模块.ec 2002-11-07 18:42 100179 19092 易语言模块大全\仿WinXP窗口v3.1版.ec 2005-10-21 15:31 94979 18657 易语言模块大全\仿XP界面3.0特别版模块 3.0....

    E语言1000模块

    。 2008-11-08 14:41 文件夹 文件夹 易语言模块大全 2005-10-21 15:30 14489 3100 易语言模块大全\24位转单色位图模块.ec 2007-01-18 07:00 7110 2339 易语言模块大全\69msn.ec 2005-05-26 02:18 4070 1472 ...

Global site tag (gtag.js) - Google Analytics