1

嗨,在 java 中验证嵌套字符串的最佳方法是什么?

示例有效字符串是 [aaaa{bbb}] 而 [{ss]} 不是。

谢谢!

4

4 回答 4

5

我会使用堆栈。遍历字符串中的字符,每次看到左大括号时,我都会将相应的右大括号压入堆栈。每次看到右大括号时,我都会检查它是否与堆栈顶部匹配。如果是这样,我从堆栈中弹出角色并继续前进。否则,它是一个无效的字符串。

于 2009-03-28T16:07:01.430 回答
1

通过“{”和“}”拆分字符串,同时将令牌推入堆栈。在您到达最后一个“}”时查看是否所有内容都已检查完毕。

于 2009-03-28T16:08:20.757 回答
0

恐怕你必须比这更具体一点。如果您只是在寻找某个子字符串,那么String.contains()如果您想验证“aaabbb cccddd eeefff”之类的内容,您必须检查每个子字符串是否恰好三个字母,那么这是正则表达式的工作。

于 2009-03-28T16:05:20.873 回答
0

我喜欢堆栈答案,但根据有效字符串的规则,这可能会变得复杂。如果您可以构造一个语法来描述有效的字符串,您可能会使用类似ANTLR的东西生成一个解析器。

于 2009-03-28T16:14:58.900 回答