黑马程序员技术交流社区

标题: 给扑克牌排序的类 [打印本页]

作者: iceknc    时间: 2015-10-6 21:21
标题: 给扑克牌排序的类
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方法,把这个类的对象作为参数传递进去即可





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2