解题思路: 将J、Q、C、A分别替换成abcd以便排序,将dchs分别替换成1234以便于排序,然后用StringBuilder的对象
sb存储替换后的字符串,将每一个牌都存储到ArrayList中排序,排序后,用StringBuilder的对象sb1来存储排完序后的字符串,随后还原为原来的字符串,输出。
注意事项:注意大小写,且每次输入都是固定的5张牌。
参考代码:
public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList<String> arrayList = new ArrayList<>(); //存储无序的牌 String s = sc.nextLine(); //存储变换后的牌 StringBuilder sb = new StringBuilder(); //变换字符串 for (int i=0;i<s.length();i++){ if (s.charAt(i)=='J'){ sb.append("A"); }else if(s.charAt(i)=='Q'){ sb.append("B"); }else if (s.charAt(i)=='K'){ sb.append("C"); }else if(s.charAt(i)=='A'){ sb.append("D"); }else if (s.charAt(i)=='d'){ sb.append("1"); }else if (s.charAt(i)=='c'){ sb.append("2"); }else if (s.charAt(i)=='h'){ sb.append("3"); }else if (s.charAt(i)=='s'){ sb.append("4"); } //如果是2到10,就不需要变换 else { sb.append(s.charAt(i)); } } //存储到ArrayList数组中。 for (int i=0;i<10;i+=2){ arrayList.add(sb.substring(i,i+2)); } //排序 arrayList.sort(new Comparator<String>() { @Override public int compare(String s, String t1) { if (s.charAt(0)==t1.charAt(0)){ return s.charAt(1)-t1.charAt(1); }else { return s.charAt(0)-t1.charAt(0); } } }); //存储排完序后的数组 StringBuilder sb1 = new StringBuilder(); //将排完序后的字符串变换成原来的样子 for (int i=0;i<arrayList.size();i++){ if (arrayList.get(i).charAt(0)=='A'){ sb1.append("J"); }else if(arrayList.get(i).charAt(0)=='B'){ sb1.append("Q"); }else if (arrayList.get(i).charAt(0)=='C'){ sb1.append("K"); }else if(arrayList.get(i).charAt(0)=='D'){ sb1.append("A"); }else { sb1.append(arrayList.get(i).charAt(0)); } if (arrayList.get(i).charAt(1)=='1'){ sb1.append("d"); }else if (arrayList.get(i).charAt(1)=='2'){ sb1.append("c"); }else if (arrayList.get(i).charAt(1)=='3'){ sb1.append("h"); }else if (arrayList.get(i).charAt(1)=='4'){ sb1.append("s"); } else { sb1.append(arrayList.get(i).charAt(1)); } } s=sb1.substring(0,sb1.length()); for (int i=0;i<10;i+=2){ System.out.print( s.substring(i,i+2)+" "); } }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:763 |
C二级辅导-计负均正 (C语言代码)浏览:593 |
时间转换 (Java代码)浏览:575 |
蓝桥杯历届试题-九宫重排 (C++代码)浏览:2783 |
【出圈】 (C语言代码)浏览:558 |
大小写转换 (C语言代码)浏览:859 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:545 |
简单的a+b (C语言代码)浏览:528 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:690 |