带反移位的Ruby反向字符串
为了学习后进先出(LIFO-FIFO),我尝试制作一个反转字符串的方法带反移位的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”吗
#!/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(“”)
: