如何在Ruby中最好地拆分一个字符串数组?

3

如果我有一个存储字符串的数组,在Ruby中想要得到结果数组,最好的方法是什么?

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

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

My current attempt:

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


@TimurShtatland 已添加。 - Steve G
1
你目前的尝试还不错,除了在map中的块应该使用花括号。请注意,这并不会改变数组。也许你只需要将其分配给一个变量。new_array = array.map { |r| r.split("_") } 或者如果你想使用相同的变量名 array = array.map {|r| r.split("_") } - SteveTurczyn
@SteveTurczyn 在 Ruby 中没有 .map(|r| r.split("_")) 这样的语法。Rust 语言有这种语法。 - Rajagopalan
当然有,就像我在评论中说的那样,只是需要加上花括号。 - SteveTurczyn
1个回答

3
在这里使用 Ruby 时,您需要使用 map{...} 而不是 map(...) 才能正确地使用语法。
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"]]

1
我不得不在.map后面添加一个感叹号来覆盖数组的值。 - Steve G
@SteveG 谢谢您的评论!已将 map! 添加到答案中。 - Timur Shtatland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接