我正在用 Java 创建一个扑克游戏,现在我正在尝试在 ArrayList 中找到重复的排名并打印它们。我的ArrayList(卡片)包含[“3c”,“3s”,“Ad”,“6h”,“7h”,“7s”]。当我使用我创建的方法时
String firstChar;
public void twoPair() {
for(String t : cards) {
char rank_index = t.charAt(0);
firstChar = String.valueOf(rank_index);
}
for (String i : cards) {
if (i.startsWith(firstChar)) System.out.println(i);
}
}
我得到的输出:
7h
7s
同样,如果我添加另一张 7 卡(如 7c),我会得到所有三张 7 卡,
7h
7s
7c
但不是 3 级牌的重复牌(“3c”和“3s”)。 完整代码位于https://github.com/aepries/A8-Poker
最佳答案
您需要一个嵌套循环,以其原始形式,它只会检查数组列表中的最后一个条目,即 7,因此您会看到起始字符为 7 的所有元素。
您应该将代码更改为:
for(String t : cards) {
char rank_index = t.charAt(0);//no need to convert to string
for (String i : cards) {
if (!i.equals(t) && i.charAt(0) == rank_index)
System.out.println(i);
}
}
关于java - 为什么我的方法只返回 ArrayList 中存在的重复项之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40956142/