鱼C论坛

 找回密码
 立即注册
查看: 4272|回复: 3

怎么把两个数组里的每个元素一一合并,然后放进新的数组里

[复制链接]
发表于 2017-1-16 21:48:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. 我以前学python的时候写过一个这个扑克牌的函数
  2. def make_deck():
  3.     deck=[]
  4.     suits = ['\u2660', '\u2661', '\u2662', '\u2663']
  5.     ranks = ['2','3','4','5','6','7','8','9','10','J','Q','K','A']
  6.     for suit in suits:
  7.         for rank in ranks:
  8.             deck.append(rank+suit)
  9.     deck.remove('Q\u2663')
  10.     return deck
复制代码
  1. 我现在学java 我想把它用java形式表示出来,但是有点小问题。。。
  2. public static void make_deck()                        
  3.         {
  4.                 String[] deck = new String[52];
  5.                 String[] suits = new String[]{"\u2660", "\u2661", "\u2662", "\u2663"};
  6.                 String[] ranks = new String[]{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
  7.                 for (int s=0;s<suits.length;s++)
  8.                 {
  9.                         for(int r=0;r<ranks.length;r++)
  10.                         {
  11.                                 。。。。。。。;
  12.                         }
  13.                 }
  14.                
  15.         }
  16. 在for里面应该怎么表达才能实现这一功能,输出结果一共52张牌[''&#9824;2'',''&#9824;3'',''&#9824;4'',.......]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-17 09:05:05 | 显示全部楼层
本帖最后由 零度非安全 于 2017-1-17 09:41 编辑

首先Python 代码运行效果如下:

make_deck.png




说个简单点的,因为我看到你 Python 代码中有个 append( ) 方法,所以让我第一时间想起 Java 中 StringBuffer 类中 append( ) 方法,于是我就将你上述给的 Java 代码稍微改写了下,并将你要的结果输出。版主能力有限

,但我会尽自己所学的东西为你们解答,尽量用最简便的方法实现,其实这个可以用更高级的方法解决(数组自动扩容、添加,复制等),但我觉得我这个是最简单、最快速实现方法。

运行效果如下:

makeDeck.png

代码如下:

makeDeck.java
  1. public class makeDeck{
  2.         public static void main(String args[]){
  3.                 StringBuffer deck = new StringBuffer();
  4.                 char[] suits = {6,3,4,5};
  5.                 String[] ranks = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
  6.                 for(int s = 0;s < suits.length;s++){
  7.                         for(int r = 0;r <ranks.length;r++){
  8.                                 deck.append(ranks[r] + suits[s] + ',');
  9.                         }
  10.                 }
  11.                 deck.deleteCharAt(deck.length() - 1);
  12.                 System.out.println(deck);
  13.         }
  14. }
复制代码

关于代码说明:

第一你的代码第 5 行就会出现问题,因为我在我的文本教程前几讲提到过 Java 的源文件必须要以 ASCII 码方式进行保存,

而你给出的是 Unicode,在显示上就会达不到你想要的效果;第二为什么你要把梅花 Q 删掉(既然都定了数组有52个元

素,即52张扑克牌,除掉大小王);第三说下我的代码,最后用了 StringBuffer 类中 deleteCharAt( ) 方法,目的是将最

后拼接的‘,’删除。

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-18 08:58:12 | 显示全部楼层
好厉害  我去掉一张牌是因为我之前用python做的扑克牌游戏是个抽乌龟,所以去掉一张
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-18 09:45:08 | 显示全部楼层
thyx 发表于 2017-1-18 08:58
好厉害  我去掉一张牌是因为我之前用python做的扑克牌游戏是个抽乌龟,所以去掉一张

哦,原来是这样呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 22:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表