java - 为什么我的方法只返回 ArrayList 中存在的重复项之一?

标签 java for-loop arraylist poker

我正在用 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/

相关文章:

java - 将字符串 ArrayList 从一个 Activity 传递到另一个 Activity 时,为什么会出现空指针异常?

java - 有什么方法可以让 IntelliJ IDEA 在 Java 项目中识别 Dagger 2 生成的类?

java - 动态添加到 horizo​​ntalscrollview

javascript - 基本 For 循环逻辑对我来说没有意义

java - 当我尝试调用主方法之外的方法时出现 NullPointerException

用于参数化类型的 Java 迭代器

java - Spring OAuth2.0 : Getting User Roles based on Client Id

java - DER 编码的 RSA 公钥(八位字节字符串)

python - 重温嵌套的Python循环

java - 错误: incompatible types Object Could not be converted [ArrayList]