【问题标题】:Best way to split an array of strings in ruby?在ruby中拆分字符串数组的最佳方法?
【发布时间】:2021-03-18 23:30:08
【问题描述】:

如果我在 ruby​​ 中有一个字符串数组,并且我想得到结果数组,那么最好的方法是什么?

array = ["string_apple", "string_banana", "string_orange"]

desired_result = [["string", "apple"], ["string", "banana"], ["string", "orange"]]

我目前的尝试:

array.map(|r| r.split("_"))

【问题讨论】:

  • @TimurShtatland 添加
  • 您当前的尝试很好,只是您应该为map 中的块使用花括号。 .请注意,它不会更改数组。也许您只需要将它分配给一个变量。 new_array = array.map { |r| r.split("_") } 或者如果你想使用相同的变量名array = array.map {|r| r.split("_") }
  • @SteveTurczyn 在 ruby​​ .map(|r| r.split("_")) 中没有这样的语法。语言 Rust 具有这种语法。
  • 当然有,但正如我在评论中所说,它需要花括号。

标签: arrays regex ruby string split


【解决方案1】:

您需要map{...},而不是map(...) 才能在此处获得正确的 Ruby 语法:

array = ["string_apple", "string_banana", "string_orange"]

# Assign to a different array:
split_array = array.map{ |s| s.split(/_/) }

# Or modify the original array in place:
array.map!{ |s| s.split(/_/) }

# [["string", "apple"], ["string", "banana"], ["string", "orange"]]

【讨论】:

  • 我不得不在地图上添加感叹号来覆盖数组值 .map!
  • @SteveG 感谢您的评论!在答案中添加了map!
猜你喜欢
  • 2011-10-18
  • 1970-01-01
  • 2017-12-20
  • 2010-12-03
  • 1970-01-01
  • 2011-08-06
  • 2013-11-18
  • 2018-07-27
  • 2015-06-30
相关资源
最近更新 更多