在Ruby中翻转字符串的一部分

时间:2014-12-28 21:06:27

标签: ruby string

这是一个相当简单的问题。

我想知道是否有办法将一部分字符串从一行中的另一行翻转,或者没有“临时”变量。这就是我的意思:

s1 = "asdfghjkl;"
s2 = "qwertyuiop"


to_flip = s1[3..-1]
s1[3..-1] = s2[3..-1]
s2[3..-1] = to_flip


s1 # => "asdrtyuiop"
s2 # => "qwefghjkl;"

Ruby似乎总是对某些东西都有某种单行技巧,我希望你们中的一个人知道它是什么:)

谢谢!

1 个答案:

答案 0 :(得分:1)

在Ruby中,String切片可以分配给。

s1[3..-1], s2[3..-1] = s2[3..-1], s1[3..-1]

这里,逗号用于同时分配多个东西,Ruby也允许。这是因为声明

a, b = b, a

交换ab的值(或者更具体地说,将其分配给另一个。)