我在ruby中有这个函数

def translate word
  vowels=["a","e","I","O","U"]
  i=1.to_i
  sentense=word.split(" ").to_a
  puts sentense if sentense.length >=1
  sentense.split("")
  puts sentense
end

我有一个短语“这是一个测试短语”,首先我想创建一个数组,它看起来像:
["this","is","a", "test", "phrase"]

然后我想创建另一个数组,它看起来像:
[["t","h","i","s"],["i","s"],["a"],["t","e","s","t"],["p","h","r","a","s","e"]
我试过
sentense=word.split(" ").to_a
new_array=sentense.split("").to_a

但没用

最佳答案

您可以使用String#splitEnumerable#mapString#chars

p "this is a test phrase".split.map(&:chars)
# => [["t", "h", "i", "s"], ["i", "s"], ["a"], ["t", "e", "s", "t"], ["p", "h", "r", "a", "s", "e"]]

string.split(' ')可以写成string.split,因此可以省略括号中的空格。
这也为您提供了一个数组,不需要使用to_a,您将拥有一个类似["this", "is", "a", "test", "phrase"]的数组,因此您可以使用map获取一个新数组,并通过使用.split('').chars来获取其字符数组中的每个元素。

关于ruby - 如何拆分已经拆分的数组 ruby ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46325490/

10-09 08:37
查看更多