java - 将化学式转换为其 iupac 名称

标签 java chemistry

我有一个用 java 编写的元素周期表,我正在努力创建简单的化合物(仅二元化合物)并返回有关它们的信息,但我在将化学式转换为 IUPAC 名称时遇到了问题。我对其进行了设置,以便人们可以单击元素周期表上的一个元素,然后单击另一个元素,然后会弹出一个窗口,显示可以从这两个元素创建的可能化合物。这些化合物将显示为化学式,例如 CO2 或 CH4。我希望能够将某人选择的化合物的化学式转换为 iupac 名称,以便它可以与其他信息一起显示。

我尝试使用化学开发工具包,但老实说,我不太了解如何使用它,即使它可以用于解决我的问题也是如此。它让我手动输入债券类型,这似乎比我应该讨价还价的要多得多。

例如: CO2产生二氧化碳,CH4产生甲烷。

最佳答案

It makes me put in the bond types manually, which seems like a ton more work than I should be bargaining for.

这是不可避免的。 IUPAC 名称基于化合物的结构特性,而不是其分子式。大多数重要的化学式都有许多可能的结构异构体——例如,C5H12n-戊烷、甲基丁烷、和 2,2-二甲基丙烷。如果不先了解结构,就无法选择其中一个名称。

作为替代方案,您可能需要考虑编写一个工具,用于将结构式(例如,以 SMILES 格式)转换为 IUPAC 名称。这也不是一项微不足道的任务,但至少在算法上是可行的。

关于java - 将化学式转换为其 iupac 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53992525/

相关文章:

c - C 语言的分子质量计算器程序

python - 如何使用 Pandas 从化学式中提取氢的数量(即从 C18H36P1 中提取 36)

r - 从 R 中的化学式中提取数字

python - 如何将 rdkit DrawMorganBit 输出保存为图像?

java - java中线程是如何执行的

java - 嵌套类中对象的数组

java - 使用过滤器共享登录主题

python - 使用python计算肽单同位素

java - Guice 中的可选注入(inject)

Java长时间运行程序递归导致的StackOverflowError