What is the best way to chop a string into chunks of a given length in Ruby?

前端 未结 9 2072
陌清茗
陌清茗 2020-12-12 18:40

I have been looking for an elegant and efficient way to chunk a string into substrings of a given length in Ruby.

So far, the best I could come up with is this:

9条回答
  •  [愿得一人]
    2020-12-12 19:20

    I made a little test that chops about 593MB data into 18991 32KB pieces. Your slice+map version ran for at least 15 minutes using 100% CPU before I pressed ctrl+C. This version using String#unpack finished in 3.6 seconds:

    def chunk(string, size)
      string.unpack("a#{size}" * (string.size/size.to_f).ceil)
    end
    

提交回复
热议问题