繁体   English   中英

Java无法替换后跟\\ n的字符串

[英]Java Cannot replace a string followed by \n

我是一名在读一个学期的项目的大学生,而我的程序却碰壁了。 在继续之前,一定要知道我在堆栈溢出时浏览了类似的线程,但似乎没有一个适合我的情况。

我有一个从pdf生成的字符串输入,其中包含来自表的大量数据。 问题是,由于格式问题,部门列的某些表条目从1行变为2行,我无法解决它。 例如,

PS 253(我的算法处理得很好)

243HON(破坏一切)

我最终需要能够将它们放在同一行上,并在MA之后删除“ \\ n”,以将其发送到程序的其余部分。 我尝试在部门代码(MA)之后检查\\ n一两个索引位置,并更改从中获得243HON的索引,但该索引无效。

我也尝试过String = string.replaceAll(“ MA \\ n”,“ MA”),如代码所示。 删除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++;
        }

我刚刚修好了。 通过find函数,我发现格式不是\\ nMA \\ n,而是\\ nMA \\ r \\ n。 对此进行更改可以解决一个无关紧要的小错误,该错误可以通过使用额外的空间来弥补。 仍然感谢您的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM