首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 目錄列表過濾與排序:FilenameFilter 與匿名內部類

     編輯:Java 相關知識

基本列表

File dir = new File(".");
String[] list = dir.list(); // 無過濾

FilenameFilter 介面

public interface FilenameFilter {
    boolean accept(File dir, String name);
}

實作過濾器

class DirFilter implements FilenameFilter {
    private String pattern;
    DirFilter(String p) { pattern = p; }
    public boolean accept(File dir, String name) {
        return new File(name).getName().indexOf(pattern) != -1;
    }
}

匿名內部類簡化

list = dir.list(new FilenameFilter() {
    public boolean accept(File dir, String name) {
        return new File(name).getName().indexOf(args[0]) != -1;
    }
});

排序列表

Java 1.1 無內建排序,配合 StrSortVector(自定義有序向量)實現:

StrSortVector sv = new StrSortVector();
for (String s : list) sv.addElement(s);
for (int i = 0; i < list.length; i++) list[i] = sv.elementAt(i);

注意:預設區分大小寫,大寫優先;Java 1.2+ 提供 Collator 解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved