微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解析化学式

如何解决解析化学式

假设正确将其大写,则方程中的每个符号都与该正则表达式匹配:

[A-Z][a-z]*\d*

(对于受到化学攻击的元素,元素的符号始终为大写字母,后跟可选的小写字母或两个小写字母,例如汞的汞)

您可以像这样捕获元素符号和组中的数字:

([A-Z][a-z]*)(\d*)

所以是的,从理论上讲,这将有助于正则表达式。如果您正在处理像C 6 H 2(NO 2)3(CH 3)3这样的公式,那么您的工作当然会难一些…

解决方法

我正在尝试为应用程序编写一种方法,该方法采用化学式(例如“ CH3COOH”)并返回充满其符号的某种集合。

CH3COOH将返回[C,H,H,H,C,O,O,H]

我已经有一些可以工作的东西了,但是它非常复杂,并且使用了很多带有嵌套if-else结构和循环的代码。

有没有一种方法可以通过将某种正则表达式与String.split一起使用,或者以其他出色的简单代码来实现?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。