您好,我需要一些帮助,让我对如何解决我的问题感到有些困惑。我正在创建一个简单的彩票游戏,在该游戏中,用户输入1到49之间的6位数字,然后一旦他按下按钮,就会出现6个随机数在下面,如果他正确地猜到了它们,将会出现不同的显示。
我的问题是我设法创建了程序,但直到检查所有数字是否匹配,我才能检查字符串1(用户)和字符串2(随机生成)中有多少重复项或匹配值)?
例如,如果用户输入的3个数字正确无误,即使正确的数字不在同一位置,它也会显示不同的文本
答案 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()方法和正则表达式处理从另一个字符串创建的另一个数组。