如何使用Ruby测试字符串是否基本上是引号中的整数

如何使用Ruby测试字符串是否基本上是引号中的整数

我需要一个功能is_an_integer,在哪里

  • "12".is_an_integer? 返回true。

  • "blah".is_an_integer? 返回false。

我怎么能用Ruby做到这一点?我会写一个正则表达式,但我假设有一个帮助,我不知道。


暮色呼如
浏览 640回答 3
3回答

DIEA

您可以使用正则表达式。这是@ janm建议的功能。class String     def is_i?        !!(self =~ /\A[-+]?[0-9]+\z/)     endend根据@wich的评论编辑的版本:class String     def is_i?        /\A[-+]?\d+\z/ === self     endend如果您只需要检查正数  if !/\A\d+\z/.match(string_to_check)       #Is not a positive number   else       #Is all good ..continue   end

红颜莎娜

您可以使用Integer(str)并查看它是否会引发:def is_num?(str)   !!Integer(str)rescue ArgumentError, TypeError   falseend应该指出的是,虽然这确实会返回"01",但它并不适用"09",因为它不是09有效的整数文字。如果这不是您想要的行为,您可以添加10第二个参数Integer,因此该数字始终被解释为基数10。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby