WEB开发网
开发学院WEB开发Jsp 利用正则表达式列出匹配的文件名 阅读

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

 2008-01-05 08:58:38 来源:WEB开发网   
核心提示:// : c12:DirList.java// Displays Directory listing using regular eXPRessions.// {Args: "D.*\.java"}// From 'Thinking in Java, 3rd ed.' (c) BrU
// : 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 = (String) o1;
  String s2 = (String) o2;
  return s1.toLowerCase().compareTo(s2.toLowerCase());
 }
} ///:~

Tags:利用 正则 表达式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接