我正在為我的公司開發一個小 Java 程式。在這個程式中,我需要從本地檔案夾中檢索一些檔案,但我需要按前三個字符和擴展名搜索檔案。閱讀 java 檔案,我看到該java.nio.file.Files庫存在,所以為了按名稱和擴展名過濾檔案,我看到有我實作的startsWith()andendsWith()結構如下,所以我嘗試使用它。
// recuperiamo tutti i file nella directory attuale e filtro per
// F4_*.cbi, CN_*.cbi, A4_*.cbi, Q4_*.cbi
dirFiles = new File("C:/www/htdocs/comune/F24_CT/deleghe_da_inviare_a_icbpi/");
listOfFiles = dirFiles.listFiles(new FilenameFilter() {
public boolean accept(File dirFiles, String filename) {
return filename.startsWith("F4_");
}
});
是否可以過濾各種檔案名并連接endsWith到startsWith?
我希望能夠根據條件按名稱過濾startsWits("F24 _"),startsWith("CN _"),startsWith("A4 _")和endsWith(".txt ")。
我接受任何建議或建議以提高我的知識和代碼
uj5u.com熱心網友回復:
Make很簡單,拆分2條規則,使用邏輯運算子
boolean isValidStart =
filename.startsWith("F24_") ||
filename.startsWith("CN_") ||
filename.startsWith("A4_");
boolean isTxt = filename.endsWith(".txt");
return isValidStart && isTxt;
uj5u.com熱心網友回復:
您可以使用邏輯 AND 運算式&&或正則運算式。
listOfFiles = dirFiles.listFiles(new FilenameFilter() {
public boolean accept(File dirFiles, String filename) {
boolean endsWith = filename.toLowerCase().endsWith(".txt");
boolean startsWith = filename.startsWith("F4_") && filename.startsWith("CN_") && filename.startsWith("A4_") && filename.startsWith("Q4_");
return startsWith && endsWith;
}
});
如果您想使用正則運算式,它將如下所示(F4_|CN_|A4_|Q4_).*(\.txt|\.TXT)。您可以在此處查看此正則運算式的作業方式。
listOfFiles = dirFiles.listFiles(new FilenameFilter() {
public boolean accept(File dirFiles, String filename) {
return filename.matches("(F4_|CN_|A4_|Q4_).*(\\.txt|\\.TXT)");
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/369293.html
標籤:爪哇 文件 筛选 java.nio.file
上一篇:如何將UTType與UIdocumentPicker(頁面?docx?)一起使用
下一篇:序列化中的哈希表重復值
