首页 > 解决方案 > 使用 StringBuilder/StringWriter/String.format() 附加大字符串时出现 Java OutofMemoryException

问题描述

我正在尝试解决一个编程问题,在该问题中我正在处理一个大型字符串,我尝试使用 String、StringBuilder,但在附加字符串时得到了 OutOfMermoryException Java Heap Space。当尝试使用带有 String.format() 的 StringWriter 时,运行程序需要很长时间(超过 15 分钟)。

请建议当 String 的长度为 736778906400L 时可以使用什么我已附上代码(git-repo)

标签: java

解决方案


如果您只需要计算重复字符串中的字符 - 计算它:

   static long repeatedString(String s, long n) {
        final char charToCheck='a';
        if (s.indexOf(charToCheck)>=1) {
            return s.chars()
                    .filter(value -> value == (int)charToCheck)
                    .count()*n;
        } else
            return 0;
    }

推荐阅读