鱼C论坛

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

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

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

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

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

x
我以前学python的时候写过一个这个扑克牌的函数
def make_deck():
    deck=[]
    suits = ['\u2660', '\u2661', '\u2662', '\u2663']
    ranks = ['2','3','4','5','6','7','8','9','10','J','Q','K','A']
    for suit in suits:
        for rank in ranks:
            deck.append(rank+suit)
    deck.remove('Q\u2663') 
    return deck
我现在学java 我想把它用java形式表示出来,但是有点小问题。。。
public static void make_deck()                        
        {
                String[] deck = new String[52];
                String[] suits = new String[]{"\u2660", "\u2661", "\u2662", "\u2663"};
                String[] ranks = new String[]{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
                for (int s=0;s<suits.length;s++)
                {
                        for(int r=0;r<ranks.length;r++)
                        {
                                。。。。。。。;
                        }
                }
                
        }
在for里面应该怎么表达才能实现这一功能,输出结果一共52张牌[''♠2'',''♠3'',''♠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
public class makeDeck{
        public static void main(String args[]){
                StringBuffer deck = new StringBuffer();
                char[] suits = {6,3,4,5};
                String[] ranks = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
                for(int s = 0;s < suits.length;s++){
                        for(int r = 0;r <ranks.length;r++){
                                deck.append(ranks[r] + suits[s] + ',');
                        }
                }
                deck.deleteCharAt(deck.length() - 1);
                System.out.println(deck);
        }
}
关于代码说明:

第一你的代码第 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-11-14 13:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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