首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据化学式计算分子量

根据化学式计算分子量
EN

Stack Overflow用户
提问于 2014-11-27 19:35:54
回答 1查看 1.1K关注 0票数 -3

我正在试着写一个程序,它将根据一个给定分子的化学式来计算它的分子量。

这段代码可以将像"CH3OH"这样的分子式拆分成数组{C H 3 O H},但是从这里开始,使用拆分文本来计算分子量的好方法是什么?

代码语言:javascript
复制
string input = MoleculeTextbox.text;
string pattern = @"([0-9]?\d*|[A-Z][a-z]{0,2}?\d*)";
string[] sunstrings = Regex.Split(input,pattern);
EN

回答 1

Stack Overflow用户

发布于 2014-11-27 20:26:15

首先,您需要解析字符串并将"H3“转换为"HHH",等等。这可能类似于:

代码语言:javascript
复制
var x = "CH3OH".replace(/([a-z])([2-9])/gi, function(_,c,n) { return new Array(1+parseInt(n)).join(c); });

第一组是匹配字符,第二组是重复次数。

现在,您拥有了一个类似于"CHHHOH"的字符串。您可以将该行拆分为一个数组,每个索引处都有一个字符.split(''),并将每个值映射到其分子质量。为此,您需要定义某种查找表。我使用reduce一次性处理映射和添加:

代码语言:javascript
复制
var mass = { C: 12.011, H: 1.008, O: 15.999 };
var weight = x.split('').reduce(function(sum,element) { return sum + mass[element]; }, 0);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27169794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档