java - 用于序列处理或解析的首选语言/技术

标签 java parsing

我过去曾遇到过几次类似的问题,想知道使用什么语言(方法)来解决类似的问题(我是一名 J2EE/java 开发人员):

问题:在给定规则的一组可能的单词中(假设该单词可以是 A 和 X 的组合,并且始终以 X 开头,每个单词由空格分隔),您必须阅读单词序列并解析输入以确定哪些单词在语法上是正确的。简而言之,这些问题涉及解析技术。假设用 Java 模拟自动售货机的逻辑。

所以我想知道解决与解析输入相关的问题的技术/最佳方法是什么。就像谷歌代码果酱中的外来语言处理问题

Google code jam problem

我们是否使用 ANTLR 之类的东西或 java 中的一些库。

我知道这个问题有点笼统,但我没有其他方式来表达它。

P.S:我不需要解决方案,我正在寻找解决此类重复出现的问题的最佳方法。

最佳答案

您可以使用JavaCC进行复杂的解析。

对于相对简单的解析和事件处理,我使用枚举作为状态机。 esp 作为推送解析器。

对于非常简单的解析,您可以将indexOf或split("")与equals、switch或startsWith一起使用

关于java - 用于序列处理或解析的首选语言/技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8670657/

相关文章:

java - 使用 If 检查整数

java - System.nanoTime() 是恒定时间操作吗?

java - 如何将依赖项添加到 gradle/faas/Visual Studio Code/java8

python - 使用 BeautifulSoup4 和 Python 3 解析 html 表

javascript - 你如何解析pegjs中的嵌套注释?

java - Java 中的 JSONArray 中的 JSONArray

java - 生成一个唯一的 id 以存储在缓存中

java - 将 GIF 图像转换为 PNG 格式,32 位深度

parsing - 关于可行前缀的说明

java - 如何使用jsoup访问java中子元素的属性?