当前位置: 首页 > 面试题库 >

解析化学式

闻人宇定
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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

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

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

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

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



 类似资料:
  • 主要内容:分类数据表示形式,Logistic函数数学解析,梯度上升优化方法在 《Logistic回归算法(分类问题)》一节,我们学习了 Logistic 回归算法,并且重点认识了 Logistic 函数。我们知道分类问题的预测结果是离散型数据,那么我们在程序中要如何表述这些数据呢,再者我们要如何从数学角度理解 Logistic 算法,比如它的损失函数、优化方法等。 分类数据表示形式 1) 向量形式 在机器学习中,向量形式是应用最多的形式,使用向量中的元素按顺序代表“类别

  • 问题内容: 您好,我经常开发JTableModels,其中某些单元格必须包含将某个简单数学公式加总的结果。该公式可以具有: 运算符(+,-,*,/) 数字常数 其他单元格引用(包含数字) 参数(引用名称如“ INTEREST_RATE”的数字) 我经常通过制作一个小的计算器类来解决该问题,该类可以解析公式,定义的语法。计算器类使用堆栈进行计算,语法始终使用波兰语表示法。 但是波兰语对我和我的用户来

  • 此代码 导致 Java语言时间总体安排DateTimeParseException:无法分析文本“2020-11-27 01:00”:无法从TemporalAccessor获取OffsetDateTime:{OffsetSeconds=3600},ISO解析为java类型的2020-11-27。时间总体安排已解析 这不管用吗?

  • 主要内容:假设函数,损失函数通过前面内容的介绍,我相信你对线性回归算法已经有了初步的认识。那我们应该如何在一大堆数据中求解出“线性方程呢”比如前面提及的房价预测问题?这种问题才是符合实际应用的。数据样本会散落在“线性方程”的周围(下图 2 所示), 而我们要做就是让线性方程的“直线”尽可能“拟合”周围的数据点。本节我们将从数学角度解析线性回归模型。 假设函数 通过前面知识的学习,我们知道假设函数是用来预测结果的。前面讲述时为

  • 问题内容: 我需要在pl / sql中解析数​​学方程式/函数。 oracle pl / sql中提供了哪些数学运算/函数可以帮助我解析这样的数学函数: 我想要一个函数来解析此语句并找出的值。 有什么帮助吗?谢谢。 问题答案: the,Oracle数据库不是数学工具。它具有许多算术和统计功能,但不具有能​​够解释方程式的内置功能。对不起。 碰巧的是,Marc(AKA Odie_63)最近发布了他用

  • 如果我有模式: 和一个解析器: 和两个可能的查询。问题#1: 和查询#2: 是否可以优化冲突解决程序,使查询#1 readAllPosts仅从数据库中提取标题,而查询#2则同时提取标题和lotsofdata? 我查看了parent、args、context和info参数,但看不到任何指示解析器是否被调用以响应像#1或#2这样的查询的内容。