[英]New to Ruby - how do I shuffle a string?
想要洗牌。 這是我的代碼:它有什么問題? 謝謝。
>> def string_shuffle(s)
>> s.split('').shuffle(s.length()).join
>> return s
>> end
如果正確理解你,你想要這個:
def string_shuffle(s)
s.split("").shuffle.join
end
string_shuffle("The Ruby language")
=> "ea gu bgTayehRlnu"
return s
既不需要又是錯誤的。 不需要,因為 Ruby 返回最后執行的內容並且錯誤,因為您沒有更改 s,您正在創建一個新字符串。
此外,如果您發現shuffle
方法有用,可以直接將其添加到 String 中,但要注意猴子補丁太多。
class String
def shuffle
self.split('').shuffle.join
end
end
這更快。 'hello'.chars.shuffle.join
測試自己:
require 'benchmark'
str = 'Hello' * 100
Benchmark.bm(10) do |x|
x.report('chars') { str.chars.shuffle.join }
x.report('split') { str.split('').shuffle.join }
x.report('split regex') { str.split(//).shuffle.join }
end
shuffle 不接受(並且需要)arguments。 利用:
s.split(//).shuffle.to_s
這將做:
s.chars.shuffle.join
例子:
s = "Hello, World!"
puts s.chars.shuffle.join
Output:
olH!l rWdel,o
嘗試這個
s.split('').shuffle.join
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.