Bir dizeyi belirli bir boyuta göre parçalar halinde bölmem gerekiyor. Parçalar arasında sözcükleri kıramıyorum, bu yüzden sonraki kelimeyi eklerken yığın boyutunun üzerine gidip bir sonrakine başlamam gerekir (bir yığının belirtilen boyuttan küçük olması sorun değil).Bir dize, sözcükleri parçalamadan belirtilen boyuttaki parçalara bölme
İşte çalışma kodum, ancak bunu yapmak için daha zarif bir yol bulmak istiyorum.
def split_into_chunks_by_size(chunk_size, string)
string_split_into_chunks = [""]
string.split(" ").each do |word|
if (string_split_into_chunks[-1].length + 1 + word.length > chunk_size)
string_split_into_chunks << word
else
string_split_into_chunks[-1] << " " + word
end
end
return string_split_into_chunks
end
harika çalışıyor, çok teşekkürler! bir şey daha: buradaki boşlukları düzeltebilir miyiz? – psychickita
elbette: 'str.scan (/. {1,25} \ W /) harita (&: şerit)' –
Bu, iyi yakın, ama her zaman sonunda bir '\ W' karakteri gerektirir. Özel örneğinizde, sonunda '' ve '. 'Nedeniyle çalıştı, ama onsuz, işe yaramaz. Her bir parça, zorunlu olmadığı zaman mutlaka bir '\ W 'karakteri ile biter. – sawa