我有一个jtable
和一个对象数组。在我的代码中,我使用for
循环和getValueAt()
将jtable的行值保存在此数组中。问题是,当我使用equals()
比较此数组的值与字符串文字时,它返回false
,但值相同。比较字符串与equals()不起作用
下面是其中i填充阵列中的代码:
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
JTable target = (JTable) e.getSource();
if ((target.getSelectedRow() >= 0)
&& (target.getSelectedColumn() >= 0)) {
invoiceRow = target.getSelectedRow();
invoiceCol = target.getModel().getColumnCount();
invoiceId = (BigDecimal) returnedInvoiceTable
.getModel().getValueAt(invoiceRow, 0);
Object [] invoiceRowData = new Object[invoiceCol];
for (int i = 0; i < invoiceCol; i++) {
invoiceRowData[i] = returnedInvoiceTable.getModel()
.getValueAt(invoiceRow, i);
}
fillReturned();
}
}
}
});
和这是代码,其中i从与字符串文字
if (invoiceRowData[8].toString().equals("immediate")) {
}
阵列比较的值这返回false
虽然两个值是相同的,而当我打印invoiceRowData[8].toString()
它打印immediate
。
什么可能是错的?
您可以在比较之前尝试修剪。 – VGaur 2014-10-19 09:15:06
请显示您的'toString()'方法,以存储在invoiceRowData中的任何对象。 – Eran 2014-10-19 09:15:28
现在它与trim()虽然我检查了字符串,发现它没有空格 – 2014-10-19 09:29:17