2013-09-30 112 views
0

我有一個ArrayList<Cell> RM = new ArrayList<Cell>() ;檢查是否已arralist包含Excel的單元格的值

其中RM=[aaa,bbb],並在那裏aaabbb是從Excel一些細胞文件 我用這個代碼來獲取單元格的值到數組列表。

Row row = sheet.getRow(1); 
    Iterator<Cell> cells1 = row.cellIterator(); 

while(cells1.hasNext()) { 
    Cell cell = cells1.next(); 

    if (Cell.CELL_TYPE_STRING==cell.getCellType()) { 
     RM.add(cell); 
    } 
} 

然後,我試圖查看arraylist是否包含aaa或bbb,但它不能識別該命令。的System.out.println(RM)示出了正確的結果[AAA,BBB],但如果添加一個if(包含)條件它不會:

if (RM.contains("aaa")) { 

System.out.println("ok"); } 
+0

您的列表包含'Cell'類型,並且您正在檢查'String'。當然,這不會讓你「真實」。嘗試測試一些帶有「aaa」值的'Cell'類型。 –

+0

如果你在你的數組列表中也使用了泛型,那麼你應該這樣做:'ArrayList RM = new ArrayList ();'現在如果你試圖運行你的代碼,你會得到一個錯誤,重新使用錯誤的對象類型進行比較 –

+0

@ Mike'Pomax'Kamermans。不,'contains()'會給編譯器帶來錯誤。 'contains'方法使用'Object'作爲參數。 –

回答

0

它更改爲:

ArrayList<String> RM = new ArrayList<String>() ; 
RM.add(cell.getStringCellValue()); 

和含有( )正常工作

相關問題