匹配包含值的数组中的值

时间:2015-06-08 14:30:53

标签: java apache-poi

我有一个包含以下值的数组

final String[] headers = { "abc", "def", "rty", "yui"  };

现在我正在使用apache poi迭代excel表单元格,如下所示

 for (Row row : firstSheet) {

            for (Cell cell : row) {
              if ("abc".equals(cell.getStringCellValue())) {

现在如下图所示" abc"是硬编码,我想以这样的方式定制它,当读取单元格值然后它应该从数组中的witih匹配我想要删除这个硬编码,换句话说,读取的单元格值将始终是字符串然后在数组本身中搜索相同的值请告知如何自定义此

3 个答案:

答案 0 :(得分:2)

我强烈建议您使用Set代替Array。这是代码:

public static void main(String[] args) {
        final Set<String> headers = new HashSet<String>();
        headers.add("abc");
        headers.add("def");
        headers.add("rty");
        headers.add("yui");

        for (Row row : firstSheet) {

            for (Cell cell : row) {
                if(headers.contains(cell.getStringCellValue())) {
                    // matching 
                } else {
                    // not matching
                }
            }
        }
    }

答案 1 :(得分:0)

使用以下代码段替换硬编码值。

List<String> listHeader=Arrays.asList(header);
for (Row row : firstSheet) {
    for (Cell cell : row) {
        if(listHeader.contains(cell.getStringCellValue()) {

        }
    }
}

答案 2 :(得分:-1)

您可以创建List而不是Array,然后在if子句中使用contains方法。