Java 我怎么能碾过一根太大的绳子?

Java 我怎么能碾过一根太大的绳子?,java,string,Java,String,因此,我一直在尝试运行一个html文件,在其中找到一个特定的细节 在我用jsoup做不到这一点后(正如我当时所想,因为jsoup无法处理该站点),我刚刚将该网站下载到一个html文件中,并将其解析为一个大字符串。。。 然后,我发现搞乱的可能不是jsoup,而是字符串有多大。 一开始它似乎可以存储它(我可以看到长度是600k字符),但实际上不能做更多。当我试图伸进绳子时,绳子断了,我只看到了它的末端 我不会展示代码,因为我不想透露作品,但我会这样解释- 我将html的内容转换成字符串, 我试着找到

因此,我一直在尝试运行一个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;
File folder=新文件(“folderName”);
File[]filesList=folder.listFiles();
列表链接=新建ArrayList();
for(int i=0;i
如果我把这个打印出来,它只会在结尾的某个地方显示出来。
同样,当我在上面运行时,它将从末尾开始运行。

尝试使用StringBuilder

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


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

字符串很好,但代码中的其他内容有问题,但很难说是什么,因为您不想透露它。
:[
600k现在已经不是那么大了。处理这个问题应该不会有问题。即使使用默认内存设置,字符串也会变大。600k字符在UTF-8中约为1.3MB。因此,这是处理数据的方式,而不是数据。您说可以调用
length()
,查看字符串是否包含600k字符,但当您“接触字符串”时会出现问题。你能说一下你是如何深入研究它的吗?我想做的是找到一个短语的索引,这样我就可以把它放到一个列表中。每个html文件中大约有15个这样的短语。我找到的第一个短语是最后一个短语中的一个…或者当我系统输出它时,我可以看到它不是从一开始就开始的。即使在我不会围绕它执行整个循环机制,通过它自己系统化一个html文件的字符串也是一样的。