7

このメソッドの for ループに必要な構文が見つからないようです。string 内の単語を繰り返し処理しようとしていますsuit

編集: 注意すべきことの 1 つは、cardArray が ArrayList であることです。

public String getSuit(int card){
    String suit = cardArray.get(card);
    for (String word : suit){
        if (word.contains("SPADES")){
            suit = "SPADES";            
        }
    }
    return suit;
}
4

4 に答える 4

10

あなたが使用することができます

for (String word : suit.split(" ")) {

すべてのスペース文字 (U+0020)で分割します。

または:

for (String word : suit.split("\\s+")) {

これは、空白文字のすべてのシーケンスで分割されます (これには、タブ、改行などが含まれます)。

于 2013-03-18T15:40:04.050 に答える
4

文字列を空白で分割してみてください。

String suit = cardArray.get(card);
for (String word : suit.split("\\s+")){
    if (word.contains("SPADES")){
        suit = "SPADES";            
    }
}
于 2013-03-18T15:40:31.540 に答える
0

「SPADES」を含む文字列を置き換えるだけの場合は、次のようにします。

public String getSuit(int card){
    String suit = cardArray.get(card);
    if (suit.contains("SPADES")){
        cardArray.set(card, "SPADES");            
    }
    return suit;
}

suit他の理由で文字列を分割したい場合は、他の回答を参照してください

于 2013-03-18T15:54:39.490 に答える
0

スーツに列挙型を使用して、それを Card クラスまたはもう少しオブジェクト指向のものに追加してみませんか? 文字列比較を繰り返す代わりに、必要なロジックを Card インスタンス自体の内部に追加できる Abstract クラス カードまたはインターフェイス カードを使用することもできます。

ただし、String.split(String regex)は機能するはずです。適切な正規表現を選択するだけです。

于 2013-03-18T15:43:56.527 に答える