在java中chars是ints所以char + int = int。你可能想要的是"" + char + int;,它返回一个字符串。
另外,你真的让套牌生成过于复杂了。我会建议这样的事情:
public class Card
{
char suit;
int value;
public Card(char suit, int value)
{
this.suit = suit;
this.value = value;
}
public String getName()
{
return "" + suit + value;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Deck
{
static final char[] suits = new char[] {
'h', 'd', 'c', 's'
};
static final int[] values = new int[] {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
};
List<Card> cards;
public Deck()
{
cards = new ArrayList<Card>();
for (char suit : suits)
{
for (int value : values)
{
cards.add(new Card(suit, value));
}
}
}
public void shuffle()
{
Collections.shuffle(cards);
}
}
您还可以考虑使用 Java Enums 来制作套装。它将允许轻松比较,并为每个西装提供一个人类可读的字符串。