带反移位的Ruby反向字符串

带反移位的Ruby反向字符串,ruby,Ruby,为了学习后进先出(LIFO-FIFO),我尝试制作一个反转字符串的方法 #!/usr/bin/env ruby def reverse(string) reverse = [] string.split.each do | char | reverse.unshift(char) end puts reverse.join end reverse("Hello") 当我这样做时,控制台只返回“Hello”。解离不应该返回“olleH”吗

为了学习后进先出(LIFO-FIFO),我尝试制作一个反转字符串的方法

#!/usr/bin/env ruby
def reverse(string)
    reverse = []

    string.split.each do | char | 
        reverse.unshift(char)
    end

    puts reverse.join
end

reverse("Hello")
当我这样做时,控制台只返回“Hello”。解离不应该返回“olleH”吗


i、 e对于每个字符,它按顺序排列并添加到反向数组的开头

split
没有按您认为的方式进行操作(默认情况下,它按空格进行拆分,而不是按每个字符进行拆分):

您可能需要
字符

> "Hello".chars
#=> ["H", "e", "l", "l", "o"]
您也可以只使用
each_char
方法:

string.each_char do |char|

split
没有按您认为的方式进行分割(默认情况下,它是按空格分割的,而不是按每个字符分割):

您可能需要
字符

> "Hello".chars
#=> ["H", "e", "l", "l", "o"]
您也可以只使用
each_char
方法:

string.each_char do |char|

默认情况下,
split
在空格上拆分,因此,只生成一个标记,
Hello
。尝试使用
Hello world
,您将获得
world Hello


解决方案是将一个分隔符(在本例中是一个空字符串)传递给
split
方法。

split
默认情况下在空白处拆分,因此只生成一个标记,
Hello
。尝试使用
Hello world
,您将获得
world Hello


解决方案是将一个分隔符(在本例中是一个空字符串)传递给
split
方法。

这是因为
string.split
不会将数组拆分为单个字符。将其更改为
string.split(“”)


这是因为
string.split
没有将数组拆分为单个字符。将其更改为
string.split(“”)