私信TA

用户名:Praguetramp

访问量:30962

签 名:

等  级
排  名 20
经  验 20191
参赛次数 0
文章发表 130
年  龄 0
在职情况 待业
学  校
专  业

  自我简介:

aura

解题思路:    构造对象,重写排序方法,格式化输出

注意事项:    注意牌面的大小的字符、牌面的花色的优先级处理

参考代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main implements Comparable<Object> {
	int num;     //表示牌面值的优先级: 2/3/4/5/6/7/8/9/10/11/12/13/14
	String zhi;  //表示牌面原本的值: 2/3/4/5/6/7/8/9/10/J/Q/K/A
	int color;   //表示牌面花色的优先级: 0/1/2/3
	char se;     //表示牌面花色原本的值: d/c/h/s
	Main(String num,char color){   //构造并重新设置花色优先级、牌面优先级
		this.se=color;this.zhi=num;
		if(color=='d')this.color=0;
		if(color=='c')this.color=1;
		if(color=='h')this.color=2;
		if(color=='s')this.color=3;
		if(num.equals("J"))this.num=11;
		else if(num.equals("Q"))this.num=12;
		else if(num.equals("K"))this.num=13;
		else if(num.equals("A"))this.num=14;
		else this.num=Integer.parseInt(num);
	}
	public int compareTo(Object o) {
		int flag=-1;
		Main o1=(Main)o;
		if(this.num>o1.num)               //先比较数值优先级
			flag=1;
		else if(this.num==o1.num) {       //再比较花色优先级
			if(this.color>o1.color)
				flag=1;
			else
				flag=-1;
		}
		return flag;
	}
	public String toString() {
		return this.zhi+this.se;           //输出格式
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String s =in.next();
		ArrayList<Main> arr =new ArrayList<Main>();
		int i=0;
		while(i<s.length()) {   //控制当i=length时停止输入
			if(s.charAt(i)>='2'&&s.charAt(i)<='9')
				{arr.add(new Main(""+s.charAt(i),s.charAt(i+1)));i=i+2;}
			else if(s.charAt(i)=='J')
				{arr.add(new Main("J", s.charAt(i+1)));i=i+2;}
			else if(s.charAt(i)=='Q')
				{arr.add(new Main("Q", s.charAt(i+1)));i=i+2;}
			else if(s.charAt(i)=='K')
				{arr.add(new Main("K", s.charAt(i+1)));i+=2;}
			else if(s.charAt(i)=='A')
				{arr.add(new Main("A", s.charAt(i+1)));i+=2;}
			else          //此时为牌面为10
				{arr.add(new Main("10",s.charAt(i+2)));i+=3;}
		}
		Collections.sort(arr);
		for(Main e:arr)
			System.out.print(e+" ");
 		in.close();
	}
}


 

0.0分

13 人评分

  评论区

111
2023-05-23 21:15:53
大佬6666啊
2022-12-04 13:01:08
666
2022-11-03 23:46:01
实现起来确实有点难,俺想想有啥简算吗
2022-10-09 23:05:27
‘1qqqq
2022-10-07 13:12:29
大佬6666啊
2022-09-17 22:12:10
11111
2022-08-20 21:24:11
  • «
  • 1
  • »