展开全部

你说的这些牌是用数组来存放的,所以有些麻烦。直接复制运行,更改牌的62616964757a686964616fe58685e5aeb931333332643838数量测试,有不懂的再问我package test;

import java.util.Arrays;

import java.util.Random;

public class DaoTest {

public static void main(String[] args) {

String[] str = getArr(100);

str = sorts(str);

System.out.println(Arrays.toString(str));

}

/**

* 从牌堆里抽出n张牌,可以有重复

*

* @param n

* @return

*/

public static String[] getArr(int n) {

String[] suit = { "黑桃", "红心", "梅花", "方块" };

String[] number = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",

"J", "Q", "K" };

String[] result = new String[54];

int index = 0;

for (int i = 0; i

for (int j = 0; j

result[index] = "" + suit[i] + number[j];

index++;

}

}

result[52] = "小王";

result[53] = "大王";

String[] some = new String[n];

for (int i = 0; i

some[i] = result[(new Random()).nextInt(54)];

}

return some;

}

/**

* 将所有牌分为5组,排序后在放到一起

* @param arr

* @return

*/

public static String[] sorts(String[] arr) {

System.out.println(Arrays.toString(arr));

StringBuffer ht = new StringBuffer("");

StringBuffer hx = new StringBuffer("");

StringBuffer mh = new StringBuffer("");

StringBuffer fk = new StringBuffer("");

StringBuffer king = new StringBuffer();

for (int i = 0; i

if (arr[i].length() == 2) {

if (king.toString().isEmpty()) {

king.append(arr[i]);

} else {

king.append("," + arr[i]);

}

} else if (arr[i].contains("黑桃")) {

if (ht.toString().isEmpty()) {

ht.append(arr[i]);

}else{

ht.append("," + arr[i]);

}

} else if (arr[i].contains("红心")) {

if (hx.toString().isEmpty()) {

hx.append(arr[i]);

}else{

hx.append("," + arr[i]);

}

} else if (arr[i].contains("梅花")) {

if (mh.toString().isEmpty()) {

mh.append(arr[i]);

}else{

mh.append("," + arr[i]);

}

} else {

if (fk.toString().isEmpty()) {

fk.append(arr[i]);

}else{

fk.append("," + arr[i]);

}

}

}

String[] aht = ht.toString().trim().split(",");

String[] ahx = hx.toString().trim().split(",");

String[] amh = mh.toString().trim().split(",");

String[] afk = fk.toString().trim().split(",");

String[] aking = king.toString().trim().split(",");

aht = sort1(aht);

ahx = sort1(ahx);

amh = sort1(amh);

afk = sort1(afk);

aking = sort1(aking);

String[] result = new String[arr.length];

int index = 0;

if (aht[0].length() != 0) {

for (int i = 0; i

result[index] = aht[i];

index++;

}

}

if (ahx[0].length() != 0) {

for (int i = 0; i

result[index] = ahx[i];

index++;

}

}

if (amh[0].length() != 0) {

for (int i = 0; i

result[index] = amh[i];

index++;

}

}

if (afk[0].length() != 0) {

for (int i = 0; i

result[index] = afk[i];

index++;

}

}

if (aking[0].length() != 0) {

for (int i = 0; i

result[index] = aking[i];

index++;

}

}

return result;

}

/**

* 按照3-J-A-2-小王-大王的顺序排序

* @param some

* @return

*/

public static String[] sort1(String[] some) {

if (some.length == 1 && some[0].length() == 0) {

return some;

}

if (some[0].length() == 2) {

Arrays.sort(some);

String[] result = new String[some.length];

for(int i = 0;i

result[i] = some[some.length-1-i];

}

return result;

}

String[] result = new String[some.length];

int[] number = new int[some.length];

String suit = "" + some[0].charAt(0) + some[0].charAt(1);

for (int i = 0; i

String s = "" + some[i].substring(2);

if ("A".equals(s)) {

s = "14";

} else if ("J".equals(s)) {

s = "11";

} else if ("Q".equals(s)) {

s = "12";

} else if ("K".equals(s)) {

s = "13";

} else if ("2".equals(s)) {

s = "15";

}

number[i] = Integer.parseInt(s);

}

Arrays.sort(number);

for (int i = 0; i

String s = "" + number[i];

if (number[i] == 11) {

s = "J";

} else if (number[i] == 12) {

s = "Q";

} else if (number[i] == 13) {

s = "K";

} else if (number[i] == 14) {

s = "A";

} else if (number[i] == 15) {

s = "2";

}

result[i] = suit + s;

}

return result;

}

}

java数组按照大小排列_Java怎么让数组中元素按照牌值从小到大的顺序排列相关推荐

  1. java多维数组的反射类型_Java多维数组和Arrays类方法总结详解

    一.数组的三种声明方式总结 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] tes ...

  2. java向有序数组里插数_Java向有序数组中插入一个元素,,使其仍按有序排列,并求出这个插入元素的下标...

    /** * * @create time [2014-4-13] */ public class Test { public static void main(String args[]) { //原 ...

  3. java date类型大小比较_java中date类型如何比较大小

    java中date类型如何比较大小 时间:2018-01-19     来源:Java data类型讲解 Date类在jdk1.1中就已经出现,算得上一个比较有历史的类了,用来表示日期时间.在实际的工 ...

  4. java数列的个位数求和_java二位数组相加

    java入门 暑假第一天 java所有的功能都是通过类来实现的 java源程序被解释为字节码来执行 java程序首先要编写一个类 windows平台的换行包括2个字节   回车换行      UNIX ...

  5. java 相加 等于一个数_Java 集合、数组 任意个数数字相加等于一个指定的数

    一组数字 任意个数数字相加的和等于指定的数字.  比如数字集合 1,2,3, 4,5,6  ,列出所有数字相加等于6的可能性,那么结果有:1+2+3,2+4, 主要这里的结果不是数组打乱顺序相加,而是 ...

  6. java 整型减去字符_Java:从char中减去’0’得到一个整数……为什么这个有效?...

    这工作正常: int foo = bar.charAt(1) - '0'; 但这不是-因为bar.charAt(x)返回一个char: int foo = bar.charAt(1); 似乎从char ...

  7. java中数组下标越界的异常_java新手求助 数组下标越界异常

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是一个输入有n个数字的数组,选出k个最小值的函数. import java.util.*; public class example { public ...

  8. java数字猜大小游戏_java实现猜数字小游戏

    java实现猜数字游戏 随机给定一个数字,猜大小直到正确 package com.swift; import java.util.Random; import java.util.Scanner; p ...

  9. java集合和数组随你转换_java集合和数组互相转换

    // 抽时间多了解集合框架和数组,不能只要是数组就会写ArrayList,碰到键值对就是HashMap // 每次用到集合,我们都要像小和尚念经般的熟悉下面内容: a) List Set Map是集合 ...

最新文章

  1. linux查看系统版本信息命令
  2. 小本创业的11个步骤
  3. Exchange 日常管理之三设置邮件转发
  4. python课程笔记_Python课程笔记(一)
  5. Tensorflow笔记(一)
  6. EDM邮件营销之如何制作模板
  7. 算法专题(一)1.1 希尔排序,快速排序
  8. java没错泄露_Java内存泄露问题
  9. 深度学习工作笔记002---曼哈顿距离_欧氏距离
  10. 常见移动机器人多角度对比分析(图片版)
  11. cordova 打包vue 集成的app , router-view 默认首页白屏
  12. rose 生产java代码m_rose 生成代码
  13. linux磁盘加密bitlocker,Azure Disk Encryption(Azure磁盘加密)能用在Linux和Windows下
  14. QToolButton图标大小设置
  15. 两种常用电容式麦克风 MEMS还是ECM
  16. Java Reflection
  17. 廊坊金彩教育:店铺主图如何优化
  18. windows server2012计算机管理“系统工具”里面没有“本地用户和组”怎么办?
  19. RabbitMQ可视化界面登录不了,报错:Login failed
  20. 机器学习中的数学(上)

热门文章

  1. SiftingAppender:将不同的线程记录到不同的日志文件中
  2. JBoss AS 7类加载说明
  3. 高级ZK:异步UI更新和后台处理–第1部分
  4. 嵌入式码头,Vaadin和焊接
  5. Java中的数据库架构导航
  6. JavaScript(JS)常用正则表达式汇总
  7. multiprocessing.queue取数据要加锁么_干货 | 小程序多页面接口数据缓存
  8. 剑指 Offer 51-----59
  9. 土木计算机2级,请教各位,我是学土木的,考计算机二级的哪个比较好?
  10. Objective-C学习中对 C语言的扩展