java - 使用 StringBuilder/StringWriter/String.format() 附加大字符串时出现 Java OutofMemoryException
问题描述
我正在尝试解决一个编程问题,在该问题中我正在处理一个大型字符串,我尝试使用 String、StringBuilder,但在附加字符串时得到了 OutOfMermoryException Java Heap Space。当尝试使用带有 String.format() 的 StringWriter 时,运行程序需要很长时间(超过 15 分钟)。
请建议当 String 的长度为 736778906400L 时可以使用什么我已附上代码(git-repo)
解决方案
如果您只需要计算重复字符串中的字符 - 计算它:
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;
}
推荐阅读
- javascript - React useEffect 避免每次更新中的更新回调
- networking - 如何向 coTurn 服务器发送 RPi-WebRTC-Streamer 外部 IP 地址?
- omnet++ - 如何从 Ubuntu 终端运行 OMNeT++ 项目
- express - Express - 查找子域
- c# - DivideByZeroException 不起作用并给出随机整数(例如 8)
- constraints - 动态数组约束,使得 8'h00 值应包含在最少 4 个元素中
- java - Java/Android:将目标处理程序传递给将其作为弱引用引用的自定义按钮的最短方法(lambda?)
- html - 为什么即使设置为0,div的填充也是100%
- javascript - “location.assign(url)”有时似乎会导致移动设备上的 URL 错误,但在大多数情况下都可以正常工作
- python - 局部变量返回显示错误信息