thyx 发表于 2017-1-16 21:48:04

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

我以前学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;
                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'',.......]

零度非安全 发表于 2017-1-17 09:05:05

本帖最后由 零度非安全 于 2017-1-17 09:41 编辑

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





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

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

运行效果如下:



代码如下:

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 + suits + ',');
                        }
                }
                deck.deleteCharAt(deck.length() - 1);
                System.out.println(deck);
      }
}
关于代码说明:

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

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

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

后拼接的‘,’删除。

thyx 发表于 2017-1-18 08:58:12

{:5_106:}好厉害我去掉一张牌是因为我之前用python做的扑克牌游戏是个抽乌龟,所以去掉一张

零度非安全 发表于 2017-1-18 09:45:08

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

哦,原来是这样呀{:10_328:}
页: [1]
查看完整版本: 怎么把两个数组里的每个元素一一合并,然后放进新的数组里