मुझे एक विशिष्ट आकार के अनुसार एक स्ट्रिंग को टुकड़ों में विभाजित करने की आवश्यकता है। मैं हिस्सों के बीच शब्दों को तोड़ नहीं सकता, इसलिए मुझे अगले शब्द को जोड़ने के दौरान पकड़ने की आवश्यकता है, जो खंड के आकार पर जायेगा और अगला शुरू होगा (यह ठीक है अगर एक खंड निर्दिष्ट आकार से कम है)।शब्दों को तोड़ने के बिना निर्दिष्ट आकार के हिस्सों में एक स्ट्रिंग को विभाजित करें
यहां मेरा कामकाजी कोड है, लेकिन मैं ऐसा करने के लिए एक और अधिक शानदार तरीका खोजना चाहता हूं।
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
बहुत अच्छा काम करता है, बहुत बहुत धन्यवाद! एक और बात: क्या हम यहां पीछे की जगहों को ट्रिम कर सकते हैं? – psychickita
बेशक: 'str.scan (/। {1,25} \ W /)। नक्शा (&: स्ट्रिप)' –
यह अच्छा है, लेकिन इसे हमेशा अंत में एक '\ W' वर्ण की आवश्यकता होती है। आपके विशेष उदाहरण में, यह अंत में ')' और '.' के कारण काम करता था, लेकिन इसके बिना, यह काम नहीं करेगा। प्रत्येक खंड भी आवश्यक रूप से '\ W' वर्ण के साथ समाप्त होता है जब इसे करने की आवश्यकता नहीं होती है। – sawa