有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在apache POI HSSF的循环中只匹配一次ads字符串

我有一个电子表格,里面有很多这样的行

SomeText1 SomeText2 SomeText3
Tommy     Tommy      John
Gilaen    Tamara     Shaz
Tamara     Phil      Tamara

我想筛选包含“Tamara”的行,这样我应该得到的行将是

SomeText1 SomeText2 SomeText3
Gilaen    Tamara     Shaz
Tamara     Phil      Tamara

为了做到这一点,我使用以下代码

  Map<String,String> mapEndoscBarr= new LinkedHashMap<String,String>();
            FileInputStream fis = new FileInputStream(new File(filepath));
            HSSFWorkbook      workBook = new HSSFWorkbook (fis);
            HSSFSheet         sheet    = workBook.getSheetAt (0);

            List<HSSFRow> filteredRows = new ArrayList<HSSFRow>();

            //Filter by pathology from what I am given
            Iterator<Row> rows= sheet.rowIterator(); 
            while (rows.hasNext ()){
            HSSFRow row = (HSSFRow) rows.next ();  
            Iterator<Cell> cells = row.cellIterator (); 
             while (cells.hasNext ()){
                 HSSFCell cell = (HSSFCell) cells.next (); 
                  if (cell.toString().contains("Tamara")) {
                      filteredRows.add(row);
                    }
             }
            }

但是,每次找到匹配项时,循环都会添加该行,这样我就会得到重复的行,如下所示:

SomeText1 SomeText2 SomeText3
Gilaen    Tamara     Shaz
Tamara     Phil      Tamara
Tamara     Phil      Tamara

如果塔玛拉在场的话,我怎么能只强制一个匹配,这样我就不会得到这个重复的匹配


共 (0) 个答案