如何使用java在字符串中创建多个元素?

时间:2014-09-21 20:52:19

标签: java string

首先,我是编程新手,我只是在编程课的第三周,所以如果我听起来没经验,我会道歉......

我正在创建一个模拟从牌组中挑选牌的程序。我想创建一个从Ace到10的排名字符串。然后,我想创建一个包含四种不同套装的字符串。然后我想让计算机从rank字符串中随机选择一个元素和suit字符串的元素,这样它就会说“你选择的卡片是Jack of Clubs”(仅作为例子)。

我在创建这些字符串变量时遇到问题,以便计算机可以从每个字符串数组中随机选择一个元素。任何人都可以帮助我吗?

4 个答案:

答案 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并让它选择' valuessuits的伪随机值,介于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方法,以使枚举的字符串表示看起来更好。