我过去曾遇到过几次类似的问题,想知道使用什么语言(方法)来解决类似的问题(我是一名 J2EE/java 开发人员):
问题:在给定规则的一组可能的单词中(假设该单词可以是 A 和 X 的组合,并且始终以 X 开头,每个单词由空格分隔),您必须阅读单词序列并解析输入以确定哪些单词在语法上是正确的。简而言之,这些问题涉及解析技术。假设用 Java 模拟自动售货机的逻辑。
所以我想知道解决与解析输入相关的问题的技术/最佳方法是什么。就像谷歌代码果酱中的外来语言处理问题
我们是否使用 ANTLR 之类的东西或 java 中的一些库。
我知道这个问题有点笼统,但我没有其他方式来表达它。
P.S:我不需要解决方案,我正在寻找解决此类重复出现的问题的最佳方法。
最佳答案
您可以使用JavaCC进行复杂的解析。
对于相对简单的解析和事件处理,我使用枚举作为状态机。 esp 作为推送解析器。
对于非常简单的解析,您可以将indexOf或split("")与equals、switch或startsWith一起使用
关于java - 用于序列处理或解析的首选语言/技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8670657/