A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© iceknc 中级黑马   /  2015-10-6 21:21  /  490 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Comparator;
/**
* 这是一个对扑克牌进行自定义排序的类。
* 排序标准:方块3,红心3,梅花3,黑桃3,方块4,红心4,...梅花2,黑桃2,小王,大王
*/
public class MySort implements Comparator<String> {
        //定义排序标准
        private String str = "方块红心梅花黑桃345678910JQKA2小王大王";

        @Override
        public int compare(String str1, String str2) {
                // str1的花色
                String str1HuaSe = str1.substring(0, 2);
                // str1的点数
                String str1DianShu = str1.substring(2);
                // 王牌的花色跟点数相等
                if ("".equals(str1DianShu)) {
                        str1DianShu = str1HuaSe;
                }
               
                // str2的花色
                String str2HuaSe = str2.substring(0, 2);
                // str2的点数
                String str2DianShu = str2.substring(2);
                // 王牌的花色跟点数相等
                if ("".equals(str2DianShu)) {
                        str2DianShu = str2HuaSe;
                }

                // 先排点数再排花色
                int x = str.indexOf(str1DianShu) - str.indexOf(str2DianShu);
                return x == 0 ? str.indexOf(str1HuaSe) - str.indexOf(str2HuaSe) : x;
        }
}

用法:扑克牌用List集合来装,调用Collections的sort方法,把这个类的对象作为参数传递进去即可

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马