首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java不能替换后跟\n的字符串

Java不能替换后跟\n的字符串
EN

Stack Overflow用户
提问于 2018-09-23 07:04:55
回答 1查看 76关注 0票数 1

我是一名大学生,正在做一个长达一学期的项目,我的项目遇到了障碍。在我继续之前,要知道我看过了堆栈溢出上的类似线程,它们似乎都不符合我的情况。

我有一个从pdf生成的字符串输入,其中包含来自表的丰富数据。问题是,由于格式的原因,部门列的一些表项从1行变成了2行,我无法解决这个问题。例如,

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

体量

243HON (破坏一切)

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

我还尝试了String = string.replaceAll("MA \n","MA "),如代码所示。删除MA和\n之间的空格不会产生任何影响。以下是我的代码的相关部分。谢谢!

代码语言:javascript
复制
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++;
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-23 08:50:52

我刚修好了。通过find函数,我发现格式不是\nMA \n,而是\nMA \r\n。更改这一格式很大程度上解决了问题,但有一个小的不相关的错误,可以通过使用额外的空间进行补偿。尽管如此,还是要感谢您的帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52461600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档