怎么把两个数组里的每个元素一一合并,然后放进新的数组里
我以前学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: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( ) 方法,目的是将最
后拼接的‘,’删除。 {:5_106:}好厉害我去掉一张牌是因为我之前用python做的扑克牌游戏是个抽乌龟,所以去掉一张 thyx 发表于 2017-1-18 08:58
好厉害我去掉一张牌是因为我之前用python做的扑克牌游戏是个抽乌龟,所以去掉一张
哦,原来是这样呀{:10_328:}
页:
[1]