java数组按照大小排列_Java怎么让数组中元素按照牌值从小到大的顺序排列
展开全部
你说的这些牌是用数组来存放的,所以有些麻烦。直接复制运行,更改牌的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怎么让数组中元素按照牌值从小到大的顺序排列相关推荐
- java多维数组的反射类型_Java多维数组和Arrays类方法总结详解
一.数组的三种声明方式总结 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] tes ...
- java向有序数组里插数_Java向有序数组中插入一个元素,,使其仍按有序排列,并求出这个插入元素的下标...
/** * * @create time [2014-4-13] */ public class Test { public static void main(String args[]) { //原 ...
- java date类型大小比较_java中date类型如何比较大小
java中date类型如何比较大小 时间:2018-01-19 来源:Java data类型讲解 Date类在jdk1.1中就已经出现,算得上一个比较有历史的类了,用来表示日期时间.在实际的工 ...
- java数列的个位数求和_java二位数组相加
java入门 暑假第一天 java所有的功能都是通过类来实现的 java源程序被解释为字节码来执行 java程序首先要编写一个类 windows平台的换行包括2个字节 回车换行 UNIX ...
- java 相加 等于一个数_Java 集合、数组 任意个数数字相加等于一个指定的数
一组数字 任意个数数字相加的和等于指定的数字. 比如数字集合 1,2,3, 4,5,6 ,列出所有数字相加等于6的可能性,那么结果有:1+2+3,2+4, 主要这里的结果不是数组打乱顺序相加,而是 ...
- java 整型减去字符_Java:从char中减去’0’得到一个整数……为什么这个有效?...
这工作正常: int foo = bar.charAt(1) - '0'; 但这不是-因为bar.charAt(x)返回一个char: int foo = bar.charAt(1); 似乎从char ...
- java中数组下标越界的异常_java新手求助 数组下标越界异常
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是一个输入有n个数字的数组,选出k个最小值的函数. import java.util.*; public class example { public ...
- java数字猜大小游戏_java实现猜数字小游戏
java实现猜数字游戏 随机给定一个数字,猜大小直到正确 package com.swift; import java.util.Random; import java.util.Scanner; p ...
- java集合和数组随你转换_java集合和数组互相转换
// 抽时间多了解集合框架和数组,不能只要是数组就会写ArrayList,碰到键值对就是HashMap // 每次用到集合,我们都要像小和尚念经般的熟悉下面内容: a) List Set Map是集合 ...
最新文章
- linux查看系统版本信息命令
- 小本创业的11个步骤
- Exchange 日常管理之三设置邮件转发
- python课程笔记_Python课程笔记(一)
- Tensorflow笔记(一)
- EDM邮件营销之如何制作模板
- 算法专题(一)1.1 希尔排序,快速排序
- java没错泄露_Java内存泄露问题
- 深度学习工作笔记002---曼哈顿距离_欧氏距离
- 常见移动机器人多角度对比分析(图片版)
- cordova 打包vue 集成的app , router-view 默认首页白屏
- rose 生产java代码m_rose 生成代码
- linux磁盘加密bitlocker,Azure Disk Encryption(Azure磁盘加密)能用在Linux和Windows下
- QToolButton图标大小设置
- 两种常用电容式麦克风 MEMS还是ECM
- Java Reflection
- 廊坊金彩教育:店铺主图如何优化
- windows server2012计算机管理“系统工具”里面没有“本地用户和组”怎么办?
- RabbitMQ可视化界面登录不了,报错:Login failed
- 机器学习中的数学(上)