Per esempio, la parola "stack", voglio ottenere un array come:Qual è il modo migliore per dividere una stringa per ottenere tutte le sottostringhe da Ruby?
['s', 'st', 'sta', ... 'stack', 't', 'ta', ... , 'c', 'ck', 'k']
Ho fatto questo da tale codice:
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
C'è modo migliore e più pulito per farlo? Grazie.
Con o senza duplicati? –
senza duplicati, grazie! –
consiglio generale: meglio usare la mappa (funzionale) invece di seguire lo schema "init empty + iterate + push + return" (imperativo) – tokland