// : 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());
}
} ///:~
// 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());
}
} ///:~
闽公网安备 35060202000074号