彩票计划 - 需要比较2个数组的常见值

时间:2016-02-15 22:17:58

标签: compare textfield

我正在使用NetBeans的GUI构建器为大学作业创建一个彩票系统。这是我第一次尝试使用GUI,所以如果这是一个“愚蠢的问题”,我会道歉。

当用户输入他们的6个号码(范围为1-47)时,他们会生成中奖号码。当按下“比较数字”按钮时,它会告诉用户他们得到了多少数字。

为此,我已经为用户的号码和中奖号码使用了一系列JTextField。

当我尝试打印出匹配数字的数量时,它始终为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;
}

我收到错误(wonNumbersArray [i] getText()。equals(userNumbersArray [i] .getText()))。我尝试过其他比较方法,但都无济于事。这告诉我JTextField无法转换为boolean。

再次原谅对知识的无知,我对GUI很新。

任何建议都将不胜感激! 感谢

1 个答案:

答案 0 :(得分:0)

工作代码段:

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迭代两次。

希望它有所帮助。

附注 - 迭代两个数组以检查两者中是否存在值效率不高,但是因为数组很小所以可以接受。