0

我有一个包含自然数的字符串,它们之间有任何模式,如 (,-) 或 (,)。有一段时间 - 条件我确保给定的字符串包含的数字与给定的窗口大小一样少,例如 5。

条件如下所示:

while(discretizedTs.substring(lagWindowStart).matches("(-?,?\\d+,){5,}")) {
}

其中 lagWindowStart 跳转到下一个数字或 (-,) 模式的索引。对于小字符串,这个正则表达式工作正常(就测试而言)。我的问题是,对于大字符串(我必须正常处理非常大的字符串),这个正则表达式导致了 SOF。例如,如果字符串包含超过 17k 个字符,就会发生这种情况。

要匹配的字符串的长度是否有限制?还是必须完成匹配的时间限制?如果没有正则表达式,我不知道如何解决给定的问题。我希望你有任何想法..

谢谢你最好

4

1 回答 1

1

默认 JVM 堆栈大小相当小。您可以使用 -Xss 选项增加它,例如 -Xss1024k,应该会有所帮助。

于 2012-11-18T19:03:51.747 回答