我有一個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