首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用FileNameFilter过滤多个字符串/扩展

用FileNameFilter过滤多个字符串/扩展
EN

Stack Overflow用户
提问于 2014-09-18 01:45:51
回答 1查看 3.4K关注 0票数 3

如何过滤多个扩展名,FileNameFilter一次只允许一个字符串。

FileNameFilter API

代码语言:javascript
复制
//  filter extension, but only allow filtering single extension.
//  i want to filter three extension like mp4, flv, wmv 

public class GenericExtFilter implements FilenameFilter {

    private String ext;

    public GenericExtFilter(String ext) {
        this.ext = ext;
    }

    public boolean accept(File dir, String name) {
        return (name.endsWith(ext));
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-18 01:50:28

如下所示重写您的过滤器。

代码语言:javascript
复制
public class GenericExtFilter implements FilenameFilter {
    private String[] exts;

    public GenericExtFilter(String... exts) {
        this.exts = exts;
    }

    @Override
    public boolean accept(File dir, String name) {
        for (String ext : exts) {
             if (name.endsWith(ext)) {
                 return true;
             }
        }

        return false;
    }
}

然后可以使用多个扩展来初始化它:new GenericExtFilter("mp4", "flv", "wmv");

accept方法将遍历数组,如果找到匹配的扩展,则返回true (如果不是) false。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25902934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档