java - 显示多个结果数组搜索

标签 java arrays search date

我正在搜索具有开始日期的记录:[userinput],如果它有任何匹配项,将显示该记录,问题是我的程序的性质是所有匹配项所必需的(可以有多个在同一天)需要以某种方式显示。

这是我目前所拥有的:

     public void searchDay() {
    String idInputString  = JOptionPane.showInputDialog(null, "Please enter the Date you're searching for:");


       try {   
            for (int i = 0; i < orderID.length; i++) {
                if (idInputString.equals(startDate[i])) {

                    txtOrderID.setText(orderID[i]);
                    txtOrderForename.setText(customerForename[i]);
                    txtOrderSurname.setText(customerSurname[i]);

                    txtOrderAddress1.setText(address1[i]);
                    txtOrderAddress2.setText(address2[i]);
                    txtOrderTown.setText(town[i]);
                    txtOrderCounty.setText(county[i]);
                    txtOrderPost.setText(postCode[i]);
                    txtOrderCarModel.setText(carModel[i]);

                    txtOrderCarReg.setText(carReg[i]);
                    txtOrderStartDate.setText(startDate[i]);
                    txtOrderStartTime.setText(startTime[i]);

                    txtOrderSerial.setText(serialNum[i]);

                } else {
                    JOptionPane.showMessageDialog(null, "Order ID Doesn't Exist", "Error!", JOptionPane.WARNING_MESSAGE);
                    break;
                }

            }

      } catch (Exception e) { 
       JOptionPane.showMessageDialog(null, "Order ID Doesn't Exist", "Error!", JOptionPane.WARNING_MESSAGE);
       initFields();

   }
}     

即使输入我知道存在的日期,我也会出错。

我认为问题在于 for 循环。它计算元素的数量,而不是总记录数。

这存储在“numberOfOrdersInArray”整型变量中。

但如果我这样做:

     for (int i = 0; i < numberOfOrdersInArray.length; i++) {

我收到错误“int cannot be dereferenced”

我希望我已经足够好地解释了我的问题,

非常感谢您的帮助。

最佳答案

使用.equals() 进行字符串比较不是 ==== 检查引用,而 .equals() 实际上比较字符串字符。这很重要。

编辑:

//instead of a count, you could also use a boolean
for (int i = 0, count= 0; i < orderID.length; i++) {
                if (idInputString.equals(startDate[i])) {

                    txtOrderID.setText(orderID[i]);
                    txtOrderForename.setText(customerForename[i]);
                    txtOrderSurname.setText(customerSurname[i]);

                    txtOrderAddress1.setText(address1[i]);
                    txtOrderAddress2.setText(address2[i]);
                    txtOrderTown.setText(town[i]);
                    txtOrderCounty.setText(county[i]);
                    txtOrderPost.setText(postCode[i]);
                    txtOrderCarModel.setText(carModel[i]);

                    txtOrderCarReg.setText(carReg[i]);
                    txtOrderStartDate.setText(startDate[i]);
                    txtOrderStartTime.setText(startTime[i]);

                    txtOrderSerial.setText(serialNum[i]);
                    count++;
                } 
                if(i == orderID.length - 1 && count==0){
                    JOptionPane.showMessageDialog(null, "Order ID Doesn't Exist", "Error!", JOptionPane.WARNING_MESSAGE);
                    break;
                }

            }

关于java - 显示多个结果数组搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10850880/

相关文章:

java - 除非我插入打印语句,否则 while 循环不起作用 - java

javascript - jQuery getJSON 方法无响应

mysql - 以下连接结构是否适用于 CakePHP 查找?

java - 需要有关 Base85 (Ascii85) 编码器的帮助

java - 数组和搜索算法 : How is the "average N/2 steps to search an array" average value calculated?

javascript - 如何从 React JS (ES6) 中的对象内的数组中删除元素

arrays - Scala:将两个数组合并为一个结构

c - 在 C 中搜索链表

string - 字符串处理算法

java - 从给定的数字字符串生成 16 位唯一的十六进制值