Mega Code Archive

 
Categories / Java / Regular Expressions
 

Displays directory listing using regular expressions

// : 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());   } } ///:~