当前位置: 首页 > 面试题库 >

Java文件名过滤器模式

薛承基
2023-03-14
问题内容

我需要实施

File[] files = getFiles( String folderName, String ptrn );

其中ptrn是命令提示符样式模式,例如“ * 2010 * .txt”

我熟悉FilenameFilter类,但public boolean accept(File dir, String filename)
由于String.matches()不接受此类模式而无法实现 。

谢谢!


问题答案:

所述String#matches()接受的正则表达式
模式。

“ layman’s”变体的regex变体*2010*.txt.*2010.*\.txt

因此,以下应该工作:

public boolean accept(File dir, String name) {
    return name.matches(".*2010.*\\.txt");
}

双反斜杠只是用来表示实际的反斜杠,因为反斜杠本身是Java中的转义字符String

另外,您也可以使用其他String方法在不使用正则表达式的情况下执行此操作:

public boolean accept(File dir, String name) {
    return name.contains("2010") && name.endsWith(".txt");
}

最好的选择是ptrn代表一个 真正的 正则表达式模式,或者.\.and 替换每个字符串*.*使之成为有效的正则表达式模式。

public boolean accept(File dir, String name) {
    return name.matches(ptrn.replace(".", "\\.").replace("*", ".*"));
}


 类似资料:
  • 问题内容: 我知道我可以按文件类型进行过滤,但是可以按文件大小进行过滤吗? 例如,一个JFileChooser仅显示3 MB内的图片。 问题答案: 简短的答案应该是,您尝试了什么?长答案是肯定的… 从技术上讲,您可以过滤以下任何属性或属性组合

  • 我正在为我的公司开发一个小Java程序。在这个程序中,我需要重新从我的本地文件夹一些文件,但我需要搜索文件的前三个字符和扩展名。在阅读java文档时,我看到库已经存在,因此为了按照名称和扩展名过滤文件,我看到了和构造,我已经实现如下,所以我尝试使用它。 是否可以筛选各种文件名,并将连接到?

  • 主要内容:实现,Person.java,Criteria.java,CriteriaMale.java,CriteriaFemale.java,CriteriaSingle.java,AndCriteria.java,OrCriteria.java,CriteriaPatternDemo.java过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型

  • 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 实现 我们将创建一个 Person 对象、Criteria 接口和实现了该接口的实体类,来过滤 Person 对象的列表。CriteriaP

  • 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 实现 我们将创建一个 Person 对象、Criteria 接口和实现了该接口的实体类,来过滤 Person 对象的列表。CriteriaP

  • name String extensions String[]