From: "えだゆきひこ" Date: 2011-05-25T10:25:51+09:00 Subject: [ruby-list:48111] Re: データ整形 面白そうなのでまぜてください。 2011/05/25 0:23 に Masaki Hasegawa 曰く… > むらたさんが指摘されているように、何をしたいのか判りませんので、 > 次のような動作を勝手に想像して楽しませていただきました。 同じくどうしたいのかわからないですが、好きなように文字列を 切り刻みたいのかと思い以下のように考えてみました。 日本語処理など罠とかいっぱいありそうですが、どうでしょう? Arrayを引数として渡したとき、元の文字長より少ない数値が 指定された場合どうすればうまいのか考えどころです。 class String def flip(opt=0) case opt when Float self.flip(opt.to_i) when Fixnum if self.length >= opt [self.scan(/(.{#{opt}})/),$'].join("\n") else self end when Array new_strs = [] pos = 0 opt.each do |i| new_strs << self[pos,i] pos += i end new_strs.join("\n") else self end end end puts "aaaabbbbcccccedddd".flip(3.09) puts "aaaabbbbcccccedddd".flip(5) puts "aaaabbbbccccdddd".flip([4,5,6,5])