我try 将一个字符串一分为二,然后将其赋给两个变量.

当我在中间的一个字符周围拆分字符串时,它返回:

a, b = *"12x45".split("x")
>> a: "12"
>> b: "45"

当我在第一个字符周围拆分字符串时,它返回:

a, b = *"x2345".split("x")
>> a: ""
>> b: "2345"

但当我在最后一个字符周围拆分字符串时,它返回:

a, b = *"1234x".split("x")
>> a: "1234"
>> b: nil

我本以为b"",而不是nil.有没有不同的方法来实现这一点?

Solution:
Using #split's optional 2nd parameter, you can achieve the following:

a, b = "1234x".split("x", -1)
>> a: "1234"
>> b: ""

推荐答案

split接受可选的第二个参数,该参数限制拆分的数量.当这个限制设置为-1时,它的行为类似于"如果限制为负,它的行为就像限制为零一样,这意味着没有限制,并且包括尾随的空子字符串"(从docs开始).所以:

"1234x".split("x", -1) # => ["1234", ""]

Ruby相关问答推荐

在ruby中反转数组的顺序

使用 Ruby 将文件从一个目录复制到另一个目录

如何在没有 Web 服务器的情况下从命令行执行 ruby​​ 模板文件 (ERB)?

Ruby on Rails:你能把 Ruby 代码放在 YAML 配置文件中吗?

Encoding::UndefinedConversionError

Coffeescript 中等效的 Ruby .times

在文件中搜索字符串的最佳方法是什么?

我可以在 Ruby 2.x 中要求命名参数吗?

如何在运行时判断 Ruby 中的 Gem 版本?

如何获取从位置 N 到 Ruby 中最后一个字符的子字符串?

在 Ruby 中,有没有办法使用 hash.each_with_index do |[k,v], i| 之类的东西?

ruby datetime 中有 add_days 吗?

覆盖子类中的 ruby​​ 常量,以便继承的方法使用新常量而不是旧常量?

理解 Ruby 中的私有方法

在 Ruby 中定义 [方括号] 方法是如何工作的?

从类对象获取类位置

在 Ruby 中按名称获取一个类?

正则表达式,如何匹配多行?

如何使用器重新安装 gem

我更改存储库 URL 后 Capistrano 部署失败