อะไรคือวิธีที่ดีที่สุดในการตัดสตริงเป็นชิ้น ๆ ตามความยาวที่กำหนดใน Ruby?
ฉันกำลังมองหาวิธีที่สวยงามและมีประสิทธิภาพในการรวมสตริงเป็นสตริงย่อยที่มีความยาวที่กำหนดใน Ruby จนถึงตอนนี้สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือ: def chunk(string, size) (0..(string.length-1)/size).map{|i|string[i*size,size]} end >> chunk("abcdef",3) => ["abc", "def"] >> chunk("abcde",3) => ["abc", "de"] >> chunk("abc",3) => ["abc"] >> chunk("ab",3) => ["ab"] >> chunk("",3) => [] คุณอาจต้องการchunk("", n)ที่จะกลับมาแทน[""] []ในกรณีนี้ให้เพิ่มสิ่งนี้เป็นบรรทัดแรกของวิธีการ: return [""] if string.empty? คุณจะแนะนำวิธีแก้ปัญหาที่ดีกว่านี้หรือไม่? แก้ไข ขอบคุณ Jeremy Ruten สำหรับโซลูชันที่หรูหราและมีประสิทธิภาพนี้: [แก้ไข: ไม่มีประสิทธิภาพ!] def chunk(string, size) string.scan(/.{1,#{size}}/) end …