模式匹配

时间:2010-10-29 12:20:15

标签: java algorithm pattern-matching

我将很快开始工作的新项目。基本上,这里有许多化学化合物,每个都有自己的前缀/标识符。例如,几个字符后跟几个整数和那种东西,它们都变化了。

我想知道是否有一种算法可以有效地匹配这些元素,而不是有一个巨大的if else。

我猜一个带键的哈希映射 - >关键是一些面具的价值可能是好的,但我希望有人可以提出一些我可以使用的更复杂的东西。

因为它不仅仅适用于化学化合物,它的数量可能很大。

由于

3 个答案:

答案 0 :(得分:2)

考虑以下事实:

1)两个分子可以具有相同的结构标识符,例如通过立体测量法或比较两个复杂分子(特别是许多苯环);

2)考虑http://en.wikipedia.org/wiki/International_Chemical_Identifier。它定义了明确的分子结构版本,您可以从中提取结构式。例如:

1/C2H6O/c1-2-3/h3H,2H2,1H3

代表

CH3CH2OH (ethanol)  

3)您可以检查MQL分子查询语言

4)自己实施可能需要花费很多时间。有一些无上下文的语法,但它们非常复杂,试图找到一些免费的分子查询

答案 1 :(得分:0)

将您的公式转换为String,然后使用正则表达式匹配,它将使您的生活更轻松,您将学习正则表达式,这是非常方便的。

答案 2 :(得分:0)

如果您想以专业方式进行,请使用ANTLR创建语法文件并生成解析器。