Marker aus String ermitteln

Schuriko

Bekanntes Mitglied
Ich habe eine Funktion die mir bestimmte Dateien aus einem Verzeichnis ermitteln
Code:
    public static Collection<File> getAllFilesThatMatchFilenameExtension(String directory_name, String matching_filename) {
        File directory = new File(directory_name);
        return FileUtils.listFiles(directory, new WildcardFileFilter(matching_filename), null);
    }

Aufgerufen wird mir Datei mit
Code:
getAllFilesThatMatchFilenameExtension("C:\\tmp", "file_*.jpg");

Jetzt möchte ich aus den ermittelten Dateien ermitteln was an der Position "*" steht.

z.B.
[1] file_1.jpg => 1
[2] file_abc.jpg => abc
[3] file_photo.jpg => photo

Wie kann ich soetwas am effektivsten ermitteln?
 
Das kann man z.B. mit Regulären Ausdrücken machen ("file_(.*)\.jpg") oder du gehst einfach hin und du nutzt String.substring um eben alle Zeichen vom 5. Zeichen an zu lesen und dann genau String.length()-9 Zeichen lang.
 
Persönlich würde ich es mit einem einfachen Substring machen:

Code:
String wildcard = fileName.substring("file_".length(), fileName.lastIndexOf(".jpg"));
 

Zurück
Oben