【发布时间】:2009-03-28 15:56:41
【问题描述】:
您好,在 java 中验证嵌套字符串的最佳方法是什么?
示例有效字符串为 [aaaa{bbb}] 而 [{ss]} 不是。
谢谢!
【问题讨论】:
标签: java validation nested
您好,在 java 中验证嵌套字符串的最佳方法是什么?
示例有效字符串为 [aaaa{bbb}] 而 [{ss]} 不是。
谢谢!
【问题讨论】:
标签: java validation nested
我会使用堆栈。遍历字符串中的字符,每次看到左大括号时,我都会将相应的右大括号压入堆栈。每次看到右大括号时,我都会检查它是否与堆栈顶部匹配。如果是这样,我从堆栈中弹出角色并继续前进。否则,它是一个无效的字符串。
【讨论】:
用“{”和“}”分割字符串,同时将标记推入堆栈。在您到达最后一个“}”时查看是否所有内容都已检查完毕。
【讨论】:
恐怕你必须比这更具体一点。如果您只是在寻找某个子字符串,则有String.contains(),如果您想验证类似“aaabbb cccddd eeefff”之类的内容,您必须检查每个字母是否恰好三个字母,那么这是正则表达式的工作。
【讨论】:
我喜欢堆栈答案,但根据有效字符串的规则,这可能会变得复杂。如果你可以构造一个语法来描述有效的字符串,你可能会使用类似ANTLR 的东西生成一个解析器。
【讨论】: