首先,我是编程新手,我只是在编程课的第三周,所以如果我听起来没经验,我会道歉......
我正在创建一个模拟从牌组中挑选牌的程序。我想创建一个从Ace到10的排名字符串。然后,我想创建一个包含四种不同套装的字符串。然后我想让计算机从rank字符串中随机选择一个元素和suit字符串的元素,这样它就会说“你选择的卡片是Jack of Clubs”(仅作为例子)。
我在创建这些字符串变量时遇到问题,以便计算机可以从每个字符串数组中随机选择一个元素。任何人都可以帮助我吗?
答案 0 :(得分:1)
你只需要将数组存储在一个数组中,将套数存储在另一个数组中,然后选择0和最大相应索引之间的两个随机数。
答案 1 :(得分:0)
您可以使用字符串Array来存放卡片,使用Random对象来选择卡片。
示例:
String[] cards = {"one", "two", "three", "four", "five"}; // array
Random random = new Random(); // random object
int index = random.nextInt(cards.length); // assign the next random int with a maximum of the array length
System.out.println(cards[index] + " was selected.");
不要忘记导入此import java.util.Random;
。
这应该有所帮助。
答案 2 :(得分:0)
您只需要有一个卡片值列表和一套西装:
String[] values = {
"Ace", "King", "Queen", "Jack", "Ten"
};
String[] suits = {
"Clubs", "Spades", "Hearts", "Diamonds"
}
然后你可以创建一个新的java.util.Random
并让它选择' values
和suits
的伪随机值,介于0和array.length - 1
之间:
Random r = new Random();
String suit = suits[r.nextInt(suits.length)];
String value = values[r.nextInt(values.length)];
我认为你还不知道枚举,因为你只有三周的编程课,但他们通常使用枚举来获得具有固定值的列表。枚举是一个具有固定数量实例的类:
public enum Suit {
CLUBS, SPADES, HEARTS, DIAMONDS;
}
public enum Rank {
TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN,
JACK, QUEEN, KING, ACE;
}
一副扑克牌就是一个非常好的例子:它不可能永远改变。
答案 3 :(得分:0)
欢迎来到编程世界。
我试着为你的问题提供一个有效的解决方案,所以如果这是一个家庭作业,你可能想在阅读答案之前再考虑一下。
你有一套已知的,有限的套装和等级。对我来说,这听起来像是一个枚举,所以让我们为套装和排名创建一个枚举。
enum Suit {
CLUB, SPADE, HEART, DIAMOND
}
enum Rank {
ACE, KING, QUEEN, JACK, TEN, NINE, EIGHT, SEVEN, SIX
}
现在我们想要随机组合一个套装和一个等级。 Java提供了一个Random
类,它允许我们访问一个随机整数。此外,从我们的枚举中,我们可以获得Array
枚举常量。所以,我们想要做的是创建这个数组,并随机选择一个元素。此代码可能如下所示:
public static void main(String[] args) {
Random random = new Random();
Suit[] suits = Suit.values();
Rank[] ranks = Rank.values();
String response =
String.format(
"The computer picked %s %s",
suits[random.nextInt(suits.length)].toString(),
ranks[random.nextInt(ranks.length)].toString()
);
System.out.println(response);
}
Suit.values()
为我们提供了数组。在数组中,您可以通过索引访问元素,我们使用随机索引random.nextInt(suits.length)
。请注意,这给出了0(包括)和suits.length
之间的整数。 Java中的数组以索引0开头,所以这就是我们想要的。
String.format
为格式化字符串提供了很好的功能。你应该看看它:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#format(java.util.Locale,%20java.lang.String,%20java.lang.Object...)
如果需要,您现在还可以定义toString
方法,以使枚举的字符串表示看起来更好。