【发布时间】:2018-04-29 20:01:10
【问题描述】:
我正在使用 Generex 库开发 Java,以针对给定的正则表达式打印字符串。
有些 R.E 可以生成无限字符串,我只想处理它们,但还不能。 我的代码看起来像;
Generex generex = new Generex(regex);
Iterator iterator = generex.iterator();
System.out.println("Possible strings against the given Regular Expression;\n");
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
如果我输入 (a)* 作为正则表达式,输出应该是这样的
a aa aaa aaaa aaaaa aaaaaa aaaaaaa aaaaaaaa aaaaaaaaa ...
如何限制该循环的结果?
【问题讨论】:
-
标准是什么?
-
您是否尝试过维护计数器?例如,
int maxIterations = 10; while(iterator.hasNext()) && maxIterations-- > 0) { … }。如果您不想创建长度大于 N 的字符串,您可以提出类似的解决方案。 -
我知道了。有帮助。 :)
-
正则表达式的标准是仅使用 {a,b,(,),*}。针对每个 R.E,可能或如果无限一些字符串被打印左右..
标签: java netbeans while-loop infinite-loop