我没有得到答案的下面的练习从哈特尔的Rails的教程:Railstutorial(迈克尔·哈特尔):练习4.6
通过4.10与适当的 方法取代问号,结合分裂,洗牌,并加入写一个函数, 洗牌给定的字符串中的字母。
4.10:
>> def string_shuffle(s)
>> s.split('').?.?
>> end
=> nil
>> string_shuffle("foobar")
有人可以帮我吗?
非常感谢!
我没有得到答案的下面的练习从哈特尔的Rails的教程:Railstutorial(迈克尔·哈特尔):练习4.6
通过4.10与适当的 方法取代问号,结合分裂,洗牌,并加入写一个函数, 洗牌给定的字符串中的字母。
4.10:
>> def string_shuffle(s)
>> s.split('').?.?
>> end
=> nil
>> string_shuffle("foobar")
有人可以帮我吗?
非常感谢!
我认为只是增加洗牌,并加入像你说的应该工作:
def string_shuffle(s)
s.split('').shuffle.join('')
end
的方法,由左到右工作。分割('')将单词分割成单独的字母数组。洗牌然后随机化他们。并加入('')反转分割,并将其重新放回到一个单词中。 ('')是两个单引号,不是一个双引号。如果你分割(“”)和连接(“”),它也应该工作,因为你只是想分割和连接每个字符。
好的。并与真正的价值观合作?在哪里放置“放置”或类似的东西?在哪里申报价值? – christophe
ruby中的方法将返回最后一行,所以字符串将被返回。你可以只说“puts string_shuffle(s)”,你会打印混洗的字符串。然而,正如在评论中重写的那样,你实际上正在返回一个新字符串,其中原始字符串的字母被混洗。对于大多数情况下,这将基本上做你想要的。唯一的情况是,如果您定义了一个变量并对其进行混洗,那么该变量仍将保持其原始值。在这种情况下,您需要执行以下操作: s =“word” s = string_shuffle(s) – kindofgreat
@christophe一旦您有如上定义的'string_shuffle'方法,就可以将其称为'string_shuffle(“foobar “)'。每次你打电话时它会给出不同的输出。 Rails教程祝你好运。稍后请查阅http://rubykoans.com/(在同一部分末尾推荐),以加强您的ruby技能。 –
使用这种方法,你不能准确地洗牌给定的字符串。事实上,你正在返回一个NEW字符串,原始字符串的字母被混洗。 – rewritten