彩票程序 - 需要比较 2 个数组的共同值

Lottery program - Need to compare 2 arrays for common values

我正在使用 NetBeans 的 GUI 生成器为大学作业创建一个彩票系统。这是我第一次尝试 GUI,所以如果这是 'stupid question' 我很抱歉。

当用户输入他们的 6 个号码(范围为 1-47)时,他们会生成中奖号码。当按下 'Compare Numbers' 按钮时,它会告诉用户他们猜对了多少个数字。

为此,我为用户号码和中奖号码使用了一组 JTextFields。

当我尝试打印出匹配数字的数量时,它始终为 0。我打印了数组,发现它不是在打印值,而是实际的 JTextField 对象。所以我将其更改为 .getText,它打印值但不会比较数组。

public static int compareNumbers(JTextField[] userNumbersArray, JTextField[] winningNumbersArray){
    int matchedNumber = 0;

    for (int i = 0; i < userNumbersArray.length; i++) {
        for (int x = 0; x < winningNumbersArray.length; x++) {
            if (winningNumbersArray[i]getText().equals(userNumbersArray[i].getText())) {
                matchedNumber++;
            }
        }
    }

    return matchedNumber;
}

我在 (winningNumbersArray[i]getText().equals(userNumbersArray[i].getText())) 收到错误。我尝试了其他方法进行比较,但都无济于事。这告诉我 JTextField 不能转换为布尔值。

再次原谅我对知识的无知,我对 GUI 还很陌生。

如有任何建议,我们将不胜感激! 谢谢

工作代码片段:

import javax.swing.*;

public class TFTest
{
   public static void main(String[] args)
   {
    JTextField a[] = new JTextField[]
    {
      new JTextField("1"),
      new JTextField("2"),
      new JTextField("3"),
      new JTextField("4"),
      new JTextField("5"),
      new JTextField("6")  
    };

    JTextField b[] = new JTextField[]
    {
      new JTextField("1"),
      new JTextField("2"),
      new JTextField("3"),
      new JTextField("4"),
      new JTextField("5"),
      new JTextField("7")  
   };


    int matchedNumber = 0;

        for (int i = 0; i < a.length; i++) {
            for (int x = 0; x < b.length; x++) {
                if (a[i].getText().equals(b[x].getText())) {
                    matchedNumber++;
                }
            }
        }

    System.out.println(matchedNumber);
  }
}

我注意到您的代码有两个问题: 1. 在第

行的 getText() 之前缺少句点
  if (winningNumbersArray[i]getText().equals(userNumbersArray[i].getText())) {

2。使用 i 索引而不是 i 和 x 迭代两次。

希望对您有所帮助。

旁注 - 遍历两个数组以检查两个数组中是否存在值效率不高,但是由于您的数组很小,因此可以接受。