首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua分子质量计算器

Lua分子质量计算器
EN

Stack Overflow用户
提问于 2014-04-03 03:04:34
回答 1查看 221关注 0票数 1

作为我在Lua的第一个真正的程序,我想创建一个分子量计算器(类似于这里的一个:http://www.lenntech.com/calculators/molecular/molecular-weight-calculator.htm )。

我想在这个项目的第一步得到一些帮助。我的第一步应该是将用户输入作为字符串,而不是拆分字符串。我正在看http://lua-users.org/wiki/StringLibraryTutorial,并试图找出如何做到这一点。当用户输入为CH4时,程序应该将该字符串拆分为CH4。这是我的代码:

代码语言:javascript
复制
H   = 1.008
C   = 12.011
N   = 14.007
O   = 15.999

io.write("Enter molecular formula")
input = io.read()

result = 
print("the molecular weigth is" .. result)

有人能告诉我如何将用户输入作为字符串接受,以及如何拆分该字符串吗?

编辑:根据的要求,我的问题更加具体。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-03 03:43:03

下面是一种可能的方法,您可以从以下几个方面开始:

  1. 从标准输入中获取输入字符串: input = io.read()
  2. 将类似于Cr(NO2)2的字符串转换为字符串Cr+(N+O*2)*2。化学元素名称的本质是,它都以大写字母开头,后面跟着零个或多个小写字母,因此规则可以是:每当遇到大写字母或大写字母(除非它是第一个字母或"("之前),在它前面插入一个"+",每当遇到一个数字时,在它前面插入一个"*"
  3. 从字符串Cr+(NO*2)*2中计算结果,这是Lua的优点,它是一个合法的Lua表达式,所以只需加载字符串并得到结果: str = "Cr+(N+O*2)*2“func =assert(load(”N+O*2=“.)打印(“分子weigth是”)。结果)

在Lua5.1中,使用loadstring()代替load()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22827084

复制
相关文章

相似问题

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