2011年5月25日

[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])


投稿者 xml-rpc : 2011年5月25日 10:25
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103957
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。