大家好,就是这样。我的乐透应用程序有效,但我只需要最后一件事来实现,我对此有一个非常大的问题。所以我有 6 个号码保存在“lotto.dat”文件中。1, 2, 3, 4, 5, 6。如果我不选择获取新数字,应用程序会生成 6 个新的随机数字并进行比较。这行得通。
但是如果我不想要 6 个新数字,请将它们保存在 ArrayList 中并将它们打印流到“lotto.dat”中,该文件现在包含 6 个数字,其中包含 arrayList 事物的括号 cus。我有一种感觉,这可能是问题所在,因为当保存新号码时,它说即使有也没有匹配。
这是我的数字方法:
Scanner scann = new Scanner(System.in);
File f = new File("lotto.dat");
PrintStream output = new PrintStream(f);
output.print(num1 + " " + num2 + " " + num3 + " " + num4 + " " + num5 + " " + num6);
System.out.println("Your lotto numbers: " + num1 + " " + num2 + " " + num3 + " " + num4 + " " + num5 + " " + num6);
System.out.println("Would you like to keep these numbers? y/n");
String yn = scann.nextLine();
if(!yn.equals("y")){
newNumbers();
}//While yn !y
在我的 newNumbers 方法中,我用控制台中编写的 6 个 newNumbs 填充 ArrayList。然后我将arraylist 打印到被覆盖的“lotto.dat”中。
现在这是我比较随机数(来自 ArrayList 的数字)的代码:
for(int n : numbers) { // go through all the numbers in the list
String match = doCompare(n); // doCompare metode
if(match.equals("true")){
List<Integer> numbersMatch = new ArrayList<>();
numbersMatch.add(n);
Thread.sleep(1000);
System.out.println();
System.out.println("Match on the number: " + n);
count++;
}
}
这是我的 doCompare 方法:
Scanner sc = new Scanner(new File("lotto.dat"));
List<Integer> mn = new ArrayList<>();
while(sc.hasNextInt()){
mn.add(sc.nextInt());
}
if(mn.contains(n)){
String tf = "true";
return tf;
}
else{
String tf = "false";
return tf;
}
我已经花了很多时间试图解决这个问题,但我做不到。为什么不比较数字?唯一真正改变的是,保存在 lotto.dat 中的新号码在外部文件中有“[]”。