//: io/DirList.java
// Display a directory listing using regular expressions.
// {Args: "D.*\.java"}
import java.util.regex.*;
import java.io.*;
import java.util.*;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, String.CASE_INSENSITIVE_ORDER);
    for(String dirItem : list)
      System.out.println(dirItem);
  }
}class DirFilter implements FilenameFilter {
  private Pattern pattern;
  public DirFilter(String regex) {
    pattern = Pattern.compile(regex);
  }
  public boolean accept(File dir, String name) {
    return pattern.matcher(name).matches();
  }
} /* Output:
DirList.java*///:~

解决方案 »

  1.   

    输入参数"D.*\.java"
    无输出结果
      

  2.   

     File path = new File(".");
    这里的"."代表什么?我不明白
      

  3.   

    不输入参数输出结果为
    .project
    .settings
    bin
    src
    输入参数"D.*\.java"
    无输出结果
      

  4.   

    这样是没有了,它是匹配以D开头的java文件
    不妨是这个:\..+
      

  5.   


    1. lz 你需要再看一下正则式的语法知识,D.*\.java 而这个匹配的是 “D开头的以 .java 结束的字符串”(映射到本题的话就是匹配D开头的java文件) 所以你当然输出没结果……2. "." 代表当前目录,从你的输出看,当前目录是没有java文件的吧,所以输出当然没结果,你用的是eclipse吧,这样改 File path = new File("绝对路径\\src"); (因为 java文件都在src下)。你要在cmd下传参数,运行的话,就得用绝对路径才有输出啦……