輸入五張牌(表示黑桃2、紅桃3、黑桃3、方塊A和梅花J): 2 s 3 h 3 s A d J c
輸出結果應爲:2 s 3 h 3 s J c A d數組長度固定爲5。
例:
/**
* 思路:將撲克牌的數字部分乘以10加上花色對應的值(自己設定)組成一個新的int數。
* 將新的int數組排序
* 輸出
*/
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String s1 = "";
String s2 = "";
String x1 = "dchs";//四中花色的數字分別爲0123(下標)
String x2 = "0123456789SJQKA";
//將原字符串分成倆個子串,一個放數字部分,一個放花色部分
for(int i=0,j=1;i<s.length()-1;){
s1 = s1 + s.charAt(i);
s2 = s2 + s.charAt(j);
i = i+2;j = j+2;
}
int[] array = new int[s1.length()];
for(int k=0;k<array.length;k++){
//數組的值爲數字在x2中的下標乘以10+花色在x1中的下標
//乘以10的目的是擴大比較時數字的作用
array[k] = x2.indexOf(s1.charAt(k))*10 + x1.indexOf(s2.charAt(k));
}
//排序
Arrays.sort(array);
//輸出
for(int m=0;m<array.length;m++){
int shuzi = array[m]/10;
int huase = array[m]%10;
System.out.print(x2.charAt(shuzi) +""+ x1.charAt(huase) + " ");
}
}
}