TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
这里有一个简单的例子《 列出目录下的指定类型的文件(1)》 。下面这个是使用正则表达式判断。
- 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(new DirFilter("^.*\.(java|class|jar)$"));
- 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();
- }
- }
- 或:
- import java.util.regex.*;
- import java.io.*;
- import java.util.*;
- public class DirList2 {
- public static FilenameFilter filter(final String regex) {
- // Creation of anonymous inner class:
- return new FilenameFilter() {
- private Pattern pattern = Pattern.compile(regex);
- public boolean accept(File dir, String name) {
- return pattern.matcher(name).matches();
- }
- }; // End of anonymous inner class
- }
- public static void main(String[] args) {
- File path = new File(".");
- String[] list;
- if(args.length == 0)
- list = path.list(filter("^.*\.(java|class|jar)$"));
- else
- list = path.list(filter(args[0]));
- Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
- for(String dirItem : list)
- System.out.println(dirItem);
- }
- }
- 应该注意的地方是在命令行输入正则表达式时要用括号将其括起来。如图:
- [img]http://img.javaxxz.com/2014/10/29/235739656.gif[/img]
复制代码
源码下载:http://file.javaxxz.com/2014/10/29/235739796.zip |
|