有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何运行过大的字符串?

因此,我一直在尝试运行一个html文件,在其中找到一个特定的细节

在我用jsoup做不到这一点后(正如我当时所想,因为jsoup无法处理该站点),我刚刚将该网站下载到一个html文件中,并将其解析为一个大字符串。。。 然后,我发现搞乱的可能不是jsoup,而是字符串有多大。 一开始它似乎可以存储它(我可以看到长度是600k字符),但实际上不能做更多。当我试图伸进绳子时,绳子断了,我只看到了它的末端

我不会展示代码,因为我不想透露作品,但我会这样解释- 我将html的内容转换成字符串, 我试着找到一个特定的短语, 我失败了,因为绳子切到了它能容纳的最后一点字符

因此,我的问题是,如何使我的字符串能够存储比它应该存储的多得多的内容我的处境还有其他解决办法吗

我试着把字符串分成20个子字符串,结果把整个事情搞砸了。我甚至不能在它弄糟之前把它切成碎片

所以我重写了重要的部分,这样你就可以告诉我出了什么问题

File folder = new File("folderName");
    File[] filesList = folder.listFiles();
    List<String> links = new ArrayList<String>();
    for (int i = 0; i < filesList.length; i++) {
        if (filesList[i].isFile()) {
            File file = filesList[i];
            String content;

            try {
                // getting a string out of the HTML file
                content = FileUtils.readFileToString(file, "UTF-8");

                String newSubString = content;

如果系统有问题。出来打印这个,它只会在结尾的某个地方显示给我。 当我在上面跑的时候,它也会跑完


共 (1) 个答案

  1. # 1 楼答案

    尝试使用StringBuilder

    字符串是不可变的,因此每次附加到字符串时都会创建一个新副本

    StringBuilder效率更高,因为它是可变的,当您使用其toString()方法完成修改后,可以将其转换为字符串