根据化学式计算分子量

  • 本文关键字:分子量 计算 化学式 c#
  • 更新时间 :
  • 英文 :


我正在尝试编写一个程序,该程序将根据其化学式计算给定分子的分子量。

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

string input = MoleculeTextbox.text;
string pattern = @"([0-9]?d*|[A-Z][a-z]{0,2}?d*)";
string[] sunstrings = Regex.Split(input,pattern);

首先,您需要解析字符串并将"H3"转换为"HHH"等。这可能看起来像这样:

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

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

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

var mass = { C: 12.011, H: 1.008, O: 15.999 };
var weight = x.split('').reduce(function(sum,element) { return sum + mass[element]; }, 0);

最新更新