小编use*_*683的帖子

模式匹配导致长输入上的Stackoverflow

我知道有关于此主题的几个主题,但找到的解决方案特定于特定问题,并且基于改进Regex字符串.

无论如何,我需要处理一个文本输入文件,其中包含的数据将图形结构建模为相邻列表.每行n包含与n相邻的顶点列表(每个都标记为整数),由一个或多个空格字符分隔.我决定在解析之前使用正则表达式字符串检查每一行,而不是NumberFormatExceptions在数据不良的情况下抛出和捕获.

所以这就是代码在这一点上松散的样子:

line = line.trim(); //Remove whitespace in the beginning and in the end of line
if (Pattern.matches("(\\d+\\s*)*", line)){
    //split string and parse vertices
}
Run Code Online (Sandbox Code Playgroud)

一行也可能为空,这意味着它的度数为0.

它适用于大多数实例,但是当解析具有~1000个相邻顶点的线(StackOverflow)时失败.我想知道我可以解决这个问题的各种方法.我不想增加JVM堆栈大小,因为程序应保持可移植性.此外,我想继续使用RegEx模式匹配,因为嘿,这就是它的用途!所以希望有人有个好主意.

java regex stack-overflow

3
推荐指数
1
解决办法
133
查看次数

标签 统计

java ×1

regex ×1

stack-overflow ×1