Java не может заменить строку, за которой следует \ n - PullRequest
0 голосов
/ 23 сентября 2018

Я студент колледжа, работаю над семестровым проектом, и я ударил стену своей программой.Прежде чем идти дальше, знайте, что я просматривал похожие потоки при переполнении стека, и ни один из них, похоже, не соответствует моей ситуации.

У меня есть строковый ввод, сгенерированный из файла PDF, который содержит много данных из таблицы.,Проблема в том, что из-за форматирования некоторые записи в таблице для столбца отдела переходят с 1 строки на 2, и я не могу их решить.Например,

PS 253 (отлично обрабатывается по моему алгоритму)

MA

243HON (все ломается)

Мне нужно в конечном итоге поставитьих в той же строке и удалите "\ n" после MA, чтобы отправить его остальной части программы.Я попытался проверить \ n одно или два индексных места после кода отдела (MA) и изменить индекс, из которого я получаю 243HON, что не сработало.

Я также попробовал String = string.replaceAll ("MA \ n "," MA "), как видно из кода.Удаление пробела между МА и \ n ничего не делает.Вот соответствующая часть моего кода.Спасибо!

public static String[] departments = {"\nAS","\nSF","\nAE","\nAF","\nAT","\nLAR","\nAMS","\nBIO","\nBA","\nCHM","\nLCH","\nCIV","\nCSO",
        "\nCOM","\nCEC","\nCS","\nCYB","\nEC","\nEE","\nEGR","\nEP","\nES","\nFA","\nGCS","\nHS","\nHON","\nHF","\nHU","\nMA","\nME","\nWX",
        "\nMSL","\nNSC","\nPE","\nPS","\nPSY","\nSIM","\nSS","\nSE","\nSP","\nSYS","\nUNIV","\nUA"};

public static String[] departmentsFix = {"\nAS \n","\nSF \n","\nAE \n","\nAF \n","\nAT \n","\nLAR \n","\nAMS \n","\nBIO \n","\nBA \n","\nCHM \n","\nLCH \n","\nCIV \n","\nCSO \n",
        "\nCOM \n","\nCEC \n","\nCS \n","\nCYB \n","\nEC \n","\nEE \n","\nEGR \n","\nEP \n","\nES \n","\nFA \n","\nGCS \n","\nHS \n","\nHON \n","\nHF \n","\nHU \n","\nMA  \n","\nME \n","\nWX \n",
        "\nMSL \n","\nNSC \n","\nPE \n","\nPS \n","\nPSY \n","\nSIM \n","\nSS \n","\nSE \n","\nSP \n","\nSYS \n","\nUNIV \n","\nUA \n"};


public static void main(String[] args) {
    // TODO Auto-generated method stub
    Loader loader = new Loader();
    try {
        File file = new File("C:\\Users\\User\\Desktop\\EclipseWorkspace\\SE 300\\ER_SCHED_PRT.pdf");
        PDDocument document = PDDocument.load(file);
        PDFTextStripper s = new PDFTextStripper();
        loader.content = s.getText(document);

        String[] splitString = loader.content.split("Instructor", 2);

        loader.content = splitString[1];

        int index = 0;
        for (String y : departmentsFix) {
            //find any departments with a \n after them and replace it with a space
            loader.content = loader.content.replaceAll(y, departments[index] + " ");
            index++;
        }

1 Ответ

0 голосов
/ 23 сентября 2018

Я только что исправил это.С помощью функции поиска я обнаружил, что вместо \ nMA \ n формат был \ nMA \ r \ n.Изменение в значительной степени решило проблему с незначительной несущественной ошибкой, которая может быть компенсирована использованием дополнительного пробела.Тем не менее, спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...