服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

利用正则表达式列出匹配的文件名

// : c12:dirlist.java
// displays directory listing using regular expressions.

// {args: "d.*/.java"}
// from 'thinking in java, 3rd ed.' (c) bruce eckel 2002
// www.bruceeckel.com. see copyright notice in copyright.txt.

import java.io.file;
import java.io.filenamefilter;
import java.util.arrays;
import java.util.comparator;
import java.util.regex.pattern;

public class dirlist {
  public static void main(string[] args) {
    file path = new file(".");
    string[] list;
    if (args.length == 0)
      list = path.list();
    else
      list = path.list(new dirfilter(args[0]));
    arrays.sort(list, new alphabeticcomparator());
    for (int i = 0; i < list.length; i++)
      system.out.println(list[i]);
  }
}

class dirfilter implements filenamefilter {
  private pattern pattern;

  public dirfilter(string regex) {
    pattern = pattern.compile(regex);
  }

  public boolean accept(file dir, string name) {
    // strip path information, search for regex:
    return pattern.matcher(new file(name).getname()).matches();
  }
///:~

class alphabeticcomparator implements comparator {
  public int compare(object o1, object o2) {
    string s1 = (stringo1;
    string s2 = (stringo2;
    return s1.tolowercase().compareto(s2.tolowercase());
  }
///:~

扫描关注微信公众号