加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是否有Ruby gem或库提供解析序数的方法?

发布时间:2020-12-17 03:15:10 所属栏目:百科 来源:网络整理
导读:我正在寻找一种方法来解析 Ruby中的序数(第一,第二,第三等)并将它们转换为整数.你知道有没有这样做的图书馆吗? 解决方法 当我意识到 chronic gem作为解析日期过程的一部分时,我正在问这个问题.安装gem之后,您可以非常轻松地将序号转换为整数: irb(main):00
我正在寻找一种方法来解析 Ruby中的序数(第一,第二,第三等)并将它们转换为整数.你知道有没有这样做的图书馆吗?

解决方法

当我意识到 chronic gem作为解析日期过程的一部分时,我正在问这个问题.安装gem之后,您可以非常轻松地将序号转换为整数:

irb(main):001:0> require 'chronic'
=> true
irb(main):002:0> Chronic::Numerizer.numerize("eighty-fifth").to_i
=> 85

编辑:不幸的是,似乎慢性没有正确解析序数“第二”:

irb(main):003:0> Chronic::Numerizer.numerize("twenty-second").to_i
=> 20

这样做的原因是,慢性被设计用于解析日期和时间,而“秒”可以是序数或在该上下文中的时间单位.要解决这个问题,你可以使用以下行修补慢性Numerizer类:

Chronic::Numerizer::ORDINALS.insert(1,['second','2'])

它现在有效:

irb(main):005:0> Chronic::Numerizer.numerize("eighty-second").to_i
=> 82

如果您实际上使用慢性病来达到其预期目的,您可能不会想要使用其内部结构.在这种情况下,您可以将source code从Chronic :: Numerizer复制到一个新类中,然后使用该类.不要忘记将[‘second’,’2′]添加到新类中的ORDINALS常量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读