Сканирование файлов, содержащих имя переменной - PullRequest
0 голосов
/ 05 июля 2019

У меня есть простой фрагмент кода, который в настоящее время использует тессерактное распознавание текста, чтобы прочитать текст на любом заданном изображении и затем подсчитать, сколько строк оно выдает.Тем не менее, я хотел бы найти в каталоге любой документ, содержащий строку (например, M000123456), и вернуть количество из того, сколько документов содержат это в своем имени, и сравнить это с выводом числа tesseract.Документы названы так: M000123456_V987654_05-07-2000.pdf.Какой лучший способ сделать это?

import java.io.File;

import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

public class Main {
    public static void main(String[] args) throws TesseractException {
        Tesseract tesseract = new Tesseract();

        tesseract.setDatapath("C:\\Users\\mmx0409\\Downloads\\Tess4J-3.4.8-src\\Tess4J\\tessdata");

        // the path of your tess data folder
        // inside the extracted file
        String text
                = tesseract.doOCR(new File("C:\\Users\\mmx0409\\Downloads\\testimage.png"));

        // path of your image file
        System.out.print(text);
        System.out.println(text.lines().count()); // count the number of lines tesseract saw

    }
}

1 Ответ

0 голосов
/ 05 июля 2019

Вы можете использовать приведенную ниже функцию для подсчета номера документа, в имени которого есть searchString.

public int countDocuments(String directoryPath, String searchString) {
    File folder = new File(directoryPath);

    File[] listOfFiles = folder.listFiles();

    int count = 0;

    for (int i = 0; i < listOfFiles.length; i++) {
        if (listOfFiles[i].isFile()) {
            String fileName = listOfFiles[i].getName();
            if (fileName.contains(searchString)) {
                count++;
            }
        }
    }

    return count;
}
...