我正在搜索具有开始日期的记录:[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/