对纸牌不分花色的大小排序,排序顺序是2,3,..9,JQKA

原创 2015年07月07日 22:46:40

//把字符串转换为整数存储到整数数组中,(有一个特殊的值“10”,占两个字符,整型存储时又只需要分配一个空间,所以用两个索引,i与j.j指向整数数组

里的元素,而i指向字符串里的一个字符,i遇到’1‘则让整数数组存储10,i+2跳到'10'后面的字符上),对整数数组排序,再把整数数组转换为字符串

public class stringfilter {
public static String  zhipaisort(String s){
if(s==null||s.length()==0){
return null;
}
//定义一个变量存储当前字符对应的数值
int value=0;
//10占两个字符在分配整数空间时要减去一个
int count=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='1'||s.charAt(i)=='0'){
count++;
}
}
int[] array=new int[s.length()-count/2];//整数数组存储所有的值
int j=0;//j记录当前指向整形数组的索引
for(int i=0;i<s.length();i++){//i 是指向字符数组的索引
char temp=s.charAt(i);//判断这个字符是10,j,q,k,A这些特殊字符吗
value=temp-'0';//先给赋予一个值,若在“2到9,此值没有问题,其他的更改此值”
if(temp=='1'){
value=10;
i++;
}
if(temp=='J'){
value=11;
}
if(temp=='Q'){
value=12;
}
if(temp=='K'){
value=13;
}
if(temp=='A'){
value=14;
}
array[j]=value;
j++;
}
Arrays.sort(array);
StringBuffer sb=new StringBuffer();
for(int i=0;i<array.length;i++){
if(array[i]>=11){
if(array[i]==11){
sb.append('J');
}
if(array[i]==12){
sb.append('Q');
}
if(array[i]==13){
sb.append('K');
}
if(array[i]==14){
sb.append('A');
}
}else{
sb.append(array[i]);
}


}
return sb.toString();

}

这道题的时间和空间效率都是O(n),不知道有没有更好的办法

版权声明:本文为博主原创文章,未经博主允许不得转载。

扑克排序,按花色、值排序(2015年9月10日)

按花色和牌大小排序,红桃>方块>黑桃>梅花。 大概思路:新建Card对象,属性有 private int id; //花色,1234对应红方黑梅 private int values; //数字...
  • a281246240
  • a281246240
  • 2015年09月12日 21:26
  • 1002

Java算法-扑克牌排列

/** * 下面代码模拟了一套扑克牌(初始排序A~K,共13张)的操作过程。 * * 操作过程是: 手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,....
  • u010870518
  • u010870518
  • 2015年04月09日 20:49
  • 2763

52张扑克牌排序算法

算法要求:生成一副扑克牌,并打乱顺序对乱序的扑克牌文件进行排序为了方便阅读,我们直接将扑克牌生成为人工可以识别的字符串,数字从2,3,4,5,6,7,8,9,10,J,Q,K,A,花式为♠,♣,♥,♦...
  • CooperWu
  • CooperWu
  • 2010年08月04日 22:06
  • 7939

java中Hashmap按key排序

在实际的工作中,有时会有Hashmap按key排序 的需求,我找的方法如下: 一、 HashMap> raceMap = new HashMap>(); Obj...
  • wuyou1336
  • wuyou1336
  • 2016年05月26日 17:15
  • 212

算法提高 12-2扑克排序

问题描述   扑克牌排序:构造扑克牌数组,对扑克牌进行排序。排序原则如下:数字从小到大是2-10、J、Q、K和A,花色从小到大是方块(diamond)、梅花(club)、红桃(heart)、黑桃(s...
  • qq_36238595
  • qq_36238595
  • 2017年02月21日 22:25
  • 1150

例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。

解题思路:为解决问题,可分为三个步骤: 从键盘读入n个字符串,存放在一个二维字符数组中,每一个一维数组存放一个字符串; 对字符数组中的n个字符串按字母顺序排序,排好序的字符串仍存放在字符数组中; 将...
  • zhuyan020389
  • zhuyan020389
  • 2013年07月26日 09:23
  • 1646

string字符进行自然顺序排序。

/* 对字符串中字符进行自然顺序排序。 思路: 1,字符串变成字符数组。 2,对数组排序,选择,冒泡,Arrays.sort(); 3,将排序后的数组变成字符串。 ...
  • wangbo910927
  • wangbo910927
  • 2015年09月08日 08:32
  • 272

对ArrayList集合里面数据排序

以后遇到给集合里的元素排序就可以这么办了!!
  • air4312916
  • air4312916
  • 2016年11月26日 10:35
  • 2338

如何让SQLServer的 itemNum 字段 按照数字大小顺序排序

我的 itemNum 从1到20,可是超过了SQLServer的默认排序这样的 1 10 11 12 . . . 19 2 3 4 5 6 7 如何才能让排序成为这样 ...
  • xuanjiewu
  • xuanjiewu
  • 2017年08月01日 11:59
  • 971

Contours轮廓排序

1 找轮廓findContours findContours有两个接口,区别在于需不需要输出hierarchy层次结构(可用于分析轮廓间关系,一般比较少用到)。 直接找最外层轮廓RETR_...
  • weif6565
  • weif6565
  • 2014年11月13日 14:11
  • 1397
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对纸牌不分花色的大小排序,排序顺序是2,3,..9,JQKA
举报原因:
原因补充:

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