获取2个字符串的重复值并对其进行计数

时间:2018-10-14 14:41:47

标签: java android

您好,我需要一些帮助,让我对如何解决我的问题感到有些困惑。我正在创建一个简单的彩票游戏,在该游戏中,用户输入1到49之间的6位数字,然后一旦他按下按钮,就会出现6个随机数在下面,如果他正确地猜到了它们,将会出现不同的显示。

我的问题是我设法创建了程序,但直到检查所有数字是否匹配,我才能检查字符串1(用户)和字符串2(随机生成)中有多少重复项或匹配值)?

例如,如果用户输入的3个数字正确无误,即使正确的数字不在同一位置,它也会显示不同的文本

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用嵌套循环以及带有equals()方法的if表达式。 检查下面的示例,在该示例中您有一个计数器,该计数器显示两个数组列表之间有多少个匹配项:

int counter = 0;

    ArrayList<String> one = new ArrayList<String>();

    one.add("23");
    one.add("10");
    one.add("40");
    one.add("9");
    one.add("49");
    one.add("25");

    ArrayList<String> two = new ArrayList<String>();

    two.add("1");
    two.add("49");
    two.add("28");
    two.add("10");
    two.add("3");
    two.add("45");

    for (int i = 0; i < one.size(); i++) {
        for(int j = 0; j < two.size(); j++) {
            if (one.get(i).equals(two.get(j))){
                counter++;
            }
        }

    }

    System.out.printf("You have %s matches.", counter);

当然,您可以使用整数数组列表而不是字符串来做到这一点。

我也忘记提及数字是否在字符串中,例如字符串数字=“ 1、34、45、23、31、18”;例如,您可以使用numbers.split(“,”)创建一个数组并对其执行上述步骤。然后,您可以使用split()方法和正则表达式处理从另一个字符串创建的另一个数组。