我有一个非常大的字符串,当我用 Java 读取它时,出现内存不足错误。实际上,我需要将所有这些字符串读入内存,然后拆分成单独的字符串并根据值对它们进行排序。最好的方法是什么?
谢谢
最佳答案
你的大字符串来自哪里?正如您所说的那样,我认为它来自文件。你必须知道整个字符串才能知道在哪里拆分它吗?如果没有,您可以逐个字符地读取文件,直到遇到拆分标记,将到目前为止读取的所有字符放入一个字符串中,然后开始读取下一个字符串。你能大致知道在哪里对你刚刚阅读的单个字符串进行排序吗?如果是这样,您可以在第一次运行时将部分字符串写入单独的文件(例如,当您按字母顺序对字符串进行排序时,所有以 A 开头的字符串都会转到 A.tmp)。之后,您可以对创建的文件内容进行排序(希望现在足够小以适合您的内存),最后将内容附加到新的输出文件。
关于java - 将一个长字符串读入内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836553/