Zum Beispiel die Worte „Stack“, Ich möchte wie ein Array erhalten:Was ist der beste Weg, um eine Zeichenfolge aufzuteilen, um alle Teilstrings von Ruby zu erhalten?
['s', 'st', 'sta', ... 'stack', 't', 'ta', ... , 'c', 'ck', 'k']
ich dies durch einen solchen Code tat:
def split_word(str)
result = []
chas = str.split("")
len = chas.size
(0..len-1).each do |i|
(i..len-1).each do |j|
result.push(chas[i..j].join)
end
end
result.uniq
end
Gibt es eine bessere und saubere Art und Weise, das zu tun? Vielen Dank.
Mit oder ohne Duplikate? –
ohne Duplikate, danke! –
Allgemeiner Hinweis: Bessere Verwendung der Karte (funktional) anstelle des Musters "init leer + iterieren + push + return" (Imperativ) – tokland