如何使用其他类的字符串数组?

时间:2012-10-30 04:04:04

标签: java arrays string

如何对我的“套牌”阵列执行perfectShuffle操作?

我不知道如何将“deck”数组导入到我的perfectShuffle方法/类中(idk wtf是区别的)

这不会编译,因为我的perfectShuffle无法找到''deck''

我很确定你会看看我的代码,就像'你甚至不知道你在做什么?'好吧,不,我不知道我在做什么,但我已经超级远,因为我不知道我在做什么,通过在一副牌中创建每张牌的牌组阵列。

我正在努力寻找来自class / method / object / instance Watever的流程以及它们如何交互。

非常感谢任何帮助或指向资源。

public String[] Deck(){
    String[] deck = new String[52];

    //Populate Deck 2-10
    for (int i=0; i<52; i++){
        if (i<9){
            for (int j=2; j<=10; j++){
                deck[i]=(j+" of Clubs");
                i++;
            }
        }
        if (12<i&&i<22){
            for (int j=2; j<=10; j++){
                deck[i]=(j+" of Diamonds");
                i++;
            }
        }
        if (25<i&&i<35){
            for (int j=2; j<=10; j++){
                deck[i]=(j+" of Hearts");
                i++;
            }
        }
        if (38<i&&i<48){
            for (int j=2; j<=10; j++){
                deck[i]=(j+" of Spades");
                i++;
            }
        }
        else {
            deck[9]=("Jack of Clubs");
            deck[10]=("Queen of Clubs");
            deck[11]=("King of Clubs");
            deck[12]=("Ace of Clubs");

            deck[22]=("Jack of Diamonds");
            deck[23]=("Queen of Diamonds");
            deck[24]=("King of Diamonds");
            deck[25]=("Ace of Diamonds");

            deck[35]=("Jack of Hearts");
            deck[36]=("Queen of Hearts");
            deck[37]=("King of Hearts");
            deck[38]=("Ace of Hearts");

            deck[48]=("Jack of Spades");
            deck[49]=("Queen of Spades");
            deck[50]=("King of Spades");
            deck[51]=("Ace of Spades");
        }
    }
}
private void perfectShuffle(){
    Deck();
    for (int i=0; i<27; i++){
        deck[i]=deck[i+26];
    }
    for (int i=0; i<52; i++){
        System.out.println(deck[i]);
    }
}

1 个答案:

答案 0 :(得分:4)

perfectShuffle无法访问Deck()内锁定的局部变量。您需要获取Deck返回的值,并充分利用它:

private void perfectShuffle(){
    String[] myDeck = Deck();
    for (int i=0; i<27; i++){
        myDeck[i]=myDeck[i+26];
    }
    for (int i=0; i<52; i++){
        System.out.println(myDeck[i]);
    }
}

同样,您需要让Deck()实际返回该字符串数组,因为您已声明该方法返回String[]

public String[] Deck(){
    String[] deck = new String[52];

    //Populate Deck 2-10
    for (int i=0; i<52; i++){
        // blah blah blah
    }

    return deck;
}